1. 튜플이란?
파이썬에서 튜플(Tuple)은 다양한 데이터 타입의 요소들을 순서대로 저장하는 데 사용되는 데이터 구조 중 하나입니다. 튜플은 리스트와 유사하지만, 가장 큰 차이점은 튜플이 불변(immutable)이라는 점입니다. 즉, 튜플에 저장된 데이터는 생성 후에 변경할 수 없습니다.
2. 튜플의 특징
(1) 불변성(Immutability): 한 번 생성된 튜플의 요소는 변경할 수 없습니다.
(2) 순서가 있음(Ordered): 튜플의 요소는 순서를 가지며, 이 순서는 변경되지 않습니다.
(3) 인덱싱과 슬라이싱(Indexing and Slicing): 리스트와 마찬가지로 튜플도 인덱싱과 슬라이싱이 가능합니다.
(4) 다양한 데이터 타입(Diverse Data Types): 튜플 내의 요소들은 서로 다른 데이터 타입을 가질 수 있습니다.
3. 튜플의 표현
튜플은 소괄호 "(", ")"에 의해 표현됩니다. 소괄호를 생략하는 것도 가능하지만 사용하는 것이 바람직합니다.
# 튜플 생성
my_tuple = (1, 2, 3, 'Hello', 5.0)
# 튜플의 데이터 접근
print(my_tuple[1]) # 출력: 2
# 튜플 슬라이싱
print(my_tuple[1:4]) # 출력: (2, 3, 'Hello')
# 함수에서 튜플 반환
def min_max(numbers):
return min(numbers), max(numbers)
result = min_max([1, 2, 3, 4, 5])
print(result) # 출력: (1, 5)
4. 리스트와 튜플의 변환
튜플과 리스트는 파이썬에서 서로 변환할 수 있습니다. 이 변환은 매우 간단하며, 파이썬의 내장 함수를 사용하여 쉽게 수행할 수 있습니다.
(1) 리스트를 튜플로 변환하기:
리스트를 tuple() 함수에 전달하여 튜플로 변환할 수 있습니다.
예: my_list = [1, 2, 3]를 my_tuple = tuple(my_list)로 변환.
(2) 튜플을 리스트로 변환하기:
튜플을 list() 함수에 전달하여 리스트로 변환할 수 있습니다.
예: my_tuple = (1, 2, 3)을 my_list = list(my_tuple)로 변환.
5. 데이터 언패킹
튜플을 구성하는 데이터도 때로는 인덱스를 이용하여 정의할 수 있습니다.
회원1 = (정우성, (1974.04.02), (2024.01.20))
이러한 튜플에서 인덱스를 이용하면 다음과 같이 표현이 가능합니다.
회원이름 = 회원1[0]
생년월일 = 회원1[1]
가입일 = 회원1[2]
하지만 이렇게 한줄한줄 사용하지 않고 한번에 정의하는 것도 가능하다. 이를 언패킹이라고 합니다.
회원이름, 생년월일, 가입일 = 회원1
언패킹을 이용하면 인덱싱을 하는 것보다 코딩의 줄수를 줄일 수 있고, 가독성도 높일 수 있습니다.
6. 별 표현식(*)
별 표현식(Star Expression)은 파이썬에서 리스트, 튜플, 문자열 등의 반복 가능한(iterable) 데이터 구조의 요소들을 언패킹(unpacking)할 때 사용됩니다. 별 표현식은 주로 '별표(*)' 기호를 사용하여 정의됩니다. 이 표현식은 파이썬 3에서 도입되어, 변수에 반복 가능한 데이터의 여러 값을 한 번에 할당하는 데 유용하게 사용됩니다.
별 표현식의 주요 사용 사례는 다음과 같습니다:
(1) 여러 요소 언패킹(Unpacking Multiple Elements):
별 표현식을 사용하여 리스트나 튜플의 일부만 아닌 여러 요소를 동시에 다른 변수에 할당할 수 있습니다.
예: first, *middle, last = [1, 2, 3, 4, 5] 에서 middle은 [2, 3, 4]를 갖게 됩니다.
함수 인자로 사용(Using in Function Arguments):
(2) 함수를 호출할 때 별 표현식을 사용하여 리스트나 튜플의 요소들을 개별 인자로 전달할 수 있습니다.
예: def sum(a, b, c): 함수에 args = [1, 2, 3]을 sum(*args)로 전달할 수 있습니다.
반복 가능한 객체의 길이가 불확실할 때(When Length of Iterable is Uncertain):
(3) 언패킹할 객체의 길이가 불확실하거나, 단지 몇몇 요소만 필요할 때 유용합니다.
예: first, *rest = my_list 에서 rest는 첫 번째 요소를 제외한 나머지 모든 요소를 담게 됩니다
# 여러 요소 언패킹 예시
my_list = [1, 2, 3, 4, 5]
first, *middle, last = my_list
print("첫 번째 요소:", first)
print("중간 요소들:", middle)
print("마지막 요소:", last)
# 함수 인자로 사용 예시
def sum_of_three(a, b, c):
return a + b + c
args = [1, 2, 3]
print("함수 결과:", sum_of_three(*args))
'0th Pipeline - Self-development > How to programming' 카테고리의 다른 글
[파이썬] 300제 혼자 풀기 (1-10) (0) | 2024.01.20 |
---|---|
[파이썬] 딕셔너리 (dictionary) (0) | 2024.01.20 |
[파이썬] 스타 언패킹(Star unpacking): 코드를 효율적으로 짜는 TIP (0) | 2023.07.16 |
[파이썬] 데이터 언패킹(data unpacking): 효율적으로 코드 짜는 Tip (0) | 2023.07.16 |
[파이썬] 리스트 메소드(함수)의 종류 (0) | 2023.07.16 |