-
파이썬 기초 : 튜플(Tuple)🐍 Python 2025. 1. 19. 19:55728x90
튜플(Tuple)의 개념 및 특징
- 정의
- 여러 개의 값을 순서대로 저장하는 점에서는 리스트와 유사하지만, 생성된 후에 값을 변경(추가·삭제·수정)할 수 없는 자료형입니다.
- 보통 소괄호(( ))를 사용하여 생성하며, 내부 요소들은 콤마(,)로 구분합니다.
- 특징
- 불변(Immutable): 생성된 튜플은 그 안의 요소들을 변경할 수 없습니다.
- 순서(Ordered) 보장: 저장된 값들이 입력된 순서를 유지하며, 인덱스(index)를 통해 접근할 수 있습니다.
- 중복 요소 허용: 같은 값을 여러 번 가질 수 있습니다.
- 각 요소들은 서로 다른 **자료형(정수, 문자열, 불리언, 리스트 등)**을 가질 수 있습니다.
- 리스트보다 메모리를 조금 더 효율적으로 사용할 수 있으며, 자료를 읽는 속도가 빠르고, 변경 불가능한 자료를 다룰 때 유용합니다.
- 활용 사례
- 변경이 없어야 하는 데이터를 안전하게 유지(예: 좌표, 연산 결과, 설정 값 등).
- 함수에서 여러 개의 값을 한 번에 반환하고 싶을 때.
- 다른 컬렉션의 키로 사용해야 할 때(예: 딕셔너리 키), 요소가 변경되지 않으므로 안전.
튜플 생성 및 초기화
- 빈 튜플 생성
- 초기값이 있는 튜플
- 괄호 생략 가능
- 콤마로 구분하기만 해도 튜플이 됩니다.
- 하나의 요소만 가진 튜플
- 요소 하나만 있을 때는 반드시 뒤에 콤마를 붙여야 튜플로 인식합니다.
튜플 접근 및 언패킹(Unpacking)
- 인덱스(Index) 접근
- 리스트와 마찬가지로 0부터 시작하며, 음수 인덱스도 사용 가능합니다.
- 슬라이싱(Slicing)
- 튜플[start:end:step] 형태로 특정 범위를 추출합니다.
- 언패킹(Unpacking)
- 튜플의 요소를 여러 변수에 한 번에 할당할 수 있습니다.
- 확장 언패킹(Extended Unpacking)
- *를 사용하여 나머지 요소를 리스트로 받는 언패킹이 가능합니다.
튜플의 불변성(Immutable)과 그 의미
- 튜플은 한 번 생성하면 내부 요소를 변경할 수 없습니다.
- 예를 들어, 아래 코드는 에러를 발생시킵니다.
- 이러한 특징 덕분에, 안정적으로 데이터를 유지하거나, 딕셔너리의 키, 집합(set)의 원소 같은 위치에서 활용이 가능합니다.
튜플의 주요 메서드 및 기능
튜플은 변경이 불가능하기 때문에, 리스트가 제공하는 대부분의 메서드(append, insert 등)은 사용할 수 없습니다.
하지만 다음과 같은 메서드는 사용할 수 있습니다.- count(value)
- 튜플 내에 해당 값이 몇 개 있는지 반환합니다.
- index(value)
- 해당 값이 가장 처음 등장하는 인덱스를 반환합니다. (찾지 못하면 오류 발생)
- 슬라이싱, 언패킹
- 이미 앞에서 소개했듯, 시퀀스 자료형이 가진 기본 기능들은 대부분 사용할 수 있습니다.
튜플 활용 예제
- 함수에서 여러 개의 값 반환
- 데이터 교환(Swap)하기
- 파이썬에서는 튜플 언패킹을 이용해 변수 간 값을 쉽게 교환할 수 있습니다.
- 파이썬에서는 튜플 언패킹을 이용해 변수 간 값을 쉽게 교환할 수 있습니다.
- 변경 불가능한 시퀀스가 필요한 경우
- 예: 좌표(x, y), RGB 색상값 등을 튜플로 표현.
- 예: 좌표(x, y), RGB 색상값 등을 튜플로 표현.
- 딕셔너리의 키로 사용
- 리스트는 가변적이라 키로 사용할 수 없지만, 튜플은 불변이므로 키로 사용 가능.
- 리스트는 가변적이라 키로 사용할 수 없지만, 튜플은 불변이므로 키로 사용 가능.
코드설명 펼쳐보기
더보기코드 설명
- 함수 정의 (def get_user_info()):
- get_user_info라는 이름의 함수를 정의합니다.
- 이 함수는 사용자의 정보를 반환하는 역할을 합니다.
- 변수 할당 및 초기화:
- 함수 내부에서 세 개의 변수를 정의하고 값을 할당합니다:
- name: 문자열 "Bob"을 저장.
- age: 정수 22를 저장.
- city: 문자열 "Busan"을 저장.
- 함수 내부에서 세 개의 변수를 정의하고 값을 할당합니다:
- 값 반환:
- 함수가 세 값을 반환합니다.
- Python에서는 쉼표로 나열된 값들이 튜플(tuple) 형태로 반환됩니다.
- 이 경우, 반환되는 값은 ("Bob", 22, "Busan")입니다.
- 함수 호출 및 값 분해 (unpacking):
- get_user_info()를 호출하여 반환된 튜플을 변수에 할당합니다.
- 튜플 언패킹을 사용하여 반환된 튜플의 각 요소를 각각 user_name, user_age, user_city에 저장합니다:
- user_name = "Bob"
- user_age = 22
- user_city = "Busan"
- 출력:
- 언패킹된 변수들을 출력합니다.
- 출력 결과는 다음과 같습니다:
복사편집
Bob 22 Busan
핵심 개념
- 튜플 반환: 함수에서 여러 값을 반환할 때 튜플을 사용하면 간단하고 효율적입니다.
- 튜플 언패킹: 반환된 튜플의 요소를 개별 변수로 쉽게 분리하여 사용할 수 있습니다.
튜플 주요 메서드 및 기능 표 (요약)
메서드 기능설명 예시 (코드 / 결과) 생성 괄호 ( )로 생성, 콤마로 요소 구분 my_tuple = (1, 2, 3) / single = (42,) 인덱스 접근 튜플[index] fruits[0] → "apple" 슬라이싱(Slicing) [start:end:step] numbers[1:3] → 해당 범위의 부분 튜플 언패킹(Unpacking) 튜플을 여러 변수에 나눠 담기 (name, age, city) = person count(value) 해당 값의 개수를 세어 반환 my_tuple.count(2) index(value) 해당 값의 첫 번째 인덱스 반환 my_tuple.index(10) 불변(Immutable) 생성 후 요소 변경이 불가능 my_tuple[0] = 999 → 에러 괄호 생략 튜플 생성 시 괄호는 선택적 (콤마로 구분 시) my_tuple2 = 1, 2, 3 → (1, 2, 3) 확장 언패킹 *을 사용하여 나머지 요소를 리스트로 받기 a, *rest = (1, 2, 3, 4) → a=1, rest=[2, 3, 4] 728x90'🐍 Python' 카테고리의 다른 글
파이썬 기초 : Functions(함수), Lambda Expressions(람다 표현식) (0) 2025.01.21 파이썬 기초 : 조건문 , 반복문 (0) 2025.01.20 파이썬 기초 : 세트(Set) (0) 2025.01.19 파이썬 기초 : 딕셔너리(Dictionary) (0) 2025.01.19 파이썬 기초 : 리스트(List) (1) 2025.01.19 - 정의