Python 튜플(Tuples)의 특징과 활용 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 초보 Python 개발자 및 자료구조 학습자
- 중급 난이도 (리스트와 튜플 비교, 튜플 컴프리헨션 이해 필요)
핵심 요약
- 튜플은 불변(immutable) 자료구조로, 생성 후 요소 변경, 추가, 삭제 불가능
- 튜플 생성 시 괄호는 선택적이며, 콤마로 구분하는 것이 핵심 (예:
person_a = "dwight",
) - 튜플 컴프리헨션을 통해 요소 변환 및 필터링 가능 (예:
tuple(i.upper() for i in winners)
)
섹션별 세부 요약
1. 튜플의 정의 및 생성 방법
- 튜플은 리스트와 유사하지만, 불변성이 특징
- 괄호 생략 가능:
people_b = "dwight", "darryl", "angela"
- 단일 요소 튜플 생성 시 콤마 필수:
person_a = "dwight",
- 다양한 자료형 저장 가능:
crazy_tuple = ("banana", 1, True, ["A", "B"], 50.0, {})
2. 튜플 컴프리헨션 활용
- 튜플 생성 시 표현식 사용 가능:
- winners_uppercase = tuple(i.upper() for i in winners)
- winners_containing_letter_a = tuple(i for i in winners if "a" in i)
- 3단계 구조:
- 요소 변환 정의 (
i.upper()
) - 원본 튜플 반복 정의 (
for i in winners
) - 조건 적용 (
if "a" in i
)
3. 인덱싱 및 슬라이싱
- 리스트와 동일한 방식 적용 가능:
- print(people[2])
→ dwight
- print(people[-1])
→ angela
- print(people[:2])
→ ('jim', 'pam')
4. 튜플과 리스트의 선택 기준
- 튜플 사용 시점:
- 불변성 필요 (예: 상수 데이터, 설정 값)
- 성능 최적화 (반복, 인덱싱 시 더 빠름)
- 리스트 사용 시점:
- 변경 가능성이 있음 (예: 동적 데이터 처리)
- 유연한 조작 필요 (추가, 삭제, 수정 요구 시)
결론
- 튜플은 불변성과 성능 최적화를 위한 핵심 자료구조로, 데이터가 변경되지 않아야 할 경우 반드시 사용해야 함.
- 튜플 컴프리헨션은 요소 변환/필터링 시 간결한 표현식 사용을 권장 (예:
tuple(i.upper() for i in winners)
). - 리스트 vs 튜플 선택 시, 데이터의 불변성 요구 여부와 성능 고려가 중심이 되어야 함.