Python 튜플 마스터하기: 패킹, 언패킹, 비교, 슬라이싱, 딕셔너리 키
Python에서 튜플 매칭 이해하기
튜플 매칭은 보통 두 번째 요소를 비교해 튜플들을 그룹화합니다. 일반적인 패턴은 튜플의 요소를 키로 하는 딕셔너리 사용. 또한 기존 튜플의 슬라이스로 새 튜플 생성 가능.
튜플 문법 기초
쉼표로 구분된 값을 괄호 안에 넣어 튜플 정의:
tup = ('Jan', 'Feb', 'Mar')
빈 튜플은 빈 괄호 두 개: tup1 = ().
단일 값엔 후행 쉼표 필요: tup1 = (50,). 인덱스는 0부터 시작, 튜플은 연결과 슬라이싱 지원.
튜플 할당
Python은 튜플을 사용해 여러 변수에 동시 할당 가능. 구조화된 데이터 언패킹에 유용.
예제:
tup1 = ('Robert', 'Carlos', '1965', 'Terminator 1995', 'Actor', 'Florida')
tup2 = (1, 2, 3, 4, 5, 6, 7)
print(tup1[0]) # Robert
print(tup2[1:4]) # (2, 3, 4)
패킹과 언패킹
"패킹"은 값을 새 튜플에 넣기, "언패킹"은 다시 변수들로 꺼내기.
x = ('Guru99', 20, 'Education')
(company, emp, profile) = x
print(company) # Guru99
print(emp) # 20
print(profile) # Education
튜플 비교
비교 연산자(<, >, == 등)는 사전식으로 작동: 첫 번째 다른 요소가 결과 결정.
# 사례 1
a = (5, 6)
b = (1, 4)
if a > b:
print('a is bigger')
else:
print('b is bigger')
첫 요소가 같으면 다음 요소로 비교 계속.
튜플을 딕셔너리 키로 사용
튜플은 해시 가능하므로 리스트와 달리 딕셔너리 키로 사용 가능.
directory = {('last', 'first'): '555-1234'}
for last, first in directory:
print(first, last, directory[(last, first)])
딕셔너리 항목을 키-값 튜플 리스트로 조회:
a = {'x': 100, 'y': 200}
b = list(a.items())
print(b) # [('x', 100), ('y', 200)]
튜플 삭제
튜플은 불변이라 개별 요소 제거 불가. 하지만 del 문으로 튜플 객체 전체 삭제 가능.
튜플 슬라이싱
슬라이스 문법은 리스트와 동일하게 튜플에도 작동:
x = ('a', 'b', 'c', 'd', 'e')
print(x[2:4]) # ('c', 'd')
튜플용 내장 함수
튜플은 all(), any(), enumerate(), max(), min(), sorted(), len(), tuple() 등과 원활히 작동.
리스트 대비 튜플 장점
- 불변이라 튜플 반복이 리스트보다 약간 빠름.
- 불변 시퀀스만 딕셔너리 키 가능; 튜플이 그 역할 수행.
- 불변 데이터를 튜플에 저장하면 실수 변경 방지.
빠른 요약
- 패킹과 언패킹으로 깔끔한 데이터 전송.
- 튜플은 사전식으로 비교 가능.
- 튜플을 복합 딕셔너리 키로 활용.
- 튜플은 불변; 전체 객체 제거엔
del 사용.
- 슬라이싱으로 부분 튜플 효율적 추출.