파이썬의 튜플은 불변(immutable) 자료형으로, 변경할 수 없는 순서 있는 값의 집합입니다. 리스트와 유사하지만, 값을 수정, 추가, 삭제할 수 없습니다. 튜플은 고정된 데이터를 안전하게 관리하거나 여러 값을 그룹화하여 사용할 때 유용합니다.
1. 튜플 생성
# 기본 튜플 생성
tuple1 = (1, 2, 3) # 소괄호로 묶어서 생성
tuple2 = "a", "b", "c" # 괄호 없이 쉼표만으로 생성 가능
# 빈 튜플 생성
empty_tuple = () # 빈 소괄호로 생성
# 요소가 하나인 튜플 (쉼표 필수)
single_element_tuple = (1,) # 쉼표를 붙여야 튜플로 인식
not_a_tuple = (1) # 괄호만 쓰면 튜플이 아니라 정수로 인식
print(tuple1)
print(tuple2)
print(empty_tuple)
print(single_element_tuple)
print(not_a_tuple) # 정수로 출력
결과:
(1, 2, 3)
('a', 'b', 'c')
()
(1,)
1
튜플은 변경할 수 없기 때문에 안전하게 데이터 그룹화를 할 수 있습니다. 빈 튜플은 데이터를 정의하지 않은 초기 상태를 나타내거나, 요소가 하나인 튜플을 생성할 때 쉼표가 필요합니다.
2. 튜플 인덱싱과 슬라이싱
tuple1 = (10, 20, 30, 40, 50)
# 인덱싱
print(tuple1[0]) # 첫 번째 요소 가져오기
print(tuple1[-1]) # 마지막 요소 가져오기
# 슬라이싱
print(tuple1[1:4]) # 1번 인덱스부터 3번 인덱스까지 가져오기
print(tuple1[:3]) # 처음부터 2번 인덱스까지 가져오기
print(tuple1[::2]) # 2칸씩 건너뛰며 가져오기
결과:
10
50
(20, 30, 40)
(10, 20, 30)
(10, 30, 50)
튜플의 순서가 유지되기 때문에 인덱싱으로 요소에 접근하거나, 슬라이싱을 통해 특정 범위의 값을 가져올 수 있습니다.
3. 튜플의 불변성
tuple1 = (1, 2, 3)
# 튜플 요소 수정 시도 (불변 자료형이므로 오류 발생)
# tuple1[0] = 10 # TypeError 발생
# 새로운 튜플 생성
tuple2 = tuple1 + (4, 5) # 기존 튜플에 값을 추가하여 새로운 튜플 생성
print(tuple2)
결과:
(1, 2, 3, 4, 5)
튜플은 불변 자료형이므로 생성 후 요소를 변경할 수 없습니다. 그러나 새 튜플을 생성하여 확장하거나 병합할 수 있습니다.
4. 튜플 언패킹
# 기본 언패킹
point = (10, 20)
x, y = point # 각 요소를 변수에 분리
print(x) # 첫 번째 값
print(y) # 두 번째 값
# 여러 값 언패킹
a, b, *rest = (1, 2, 3, 4, 5) # 나머지 값은 리스트로 저장
print(a) # 첫 번째 값
print(b) # 두 번째 값
print(rest) # 나머지 값 리스트
결과:
10
20
1
2
[3, 4, 5]
언패킹은 튜플의 값을 변수에 나눠 담는 유용한 방식입니다. *rest를 사용하면 나머지 값들을 리스트로 저장할 수 있습니다.
5. 튜플 메서드
tuple1 = (1, 2, 2, 3, 4, 2)
# 요소 개수 세기
print(tuple1.count(2)) # 2가 몇 번 등장하는지 반환
# 요소의 첫 번째 인덱스 찾기
print(tuple1.index(2)) # 2가 처음 등장하는 위치 반환
결과:
3
1
튜플은 불변 자료형이므로 수정과 관련된 메서드는 없으며, count와 index 메서드만 지원됩니다.
6. 튜플과 리스트 간 변환
# 리스트 → 튜플
my_list = [1, 2, 3]
my_tuple = tuple(my_list) # 리스트를 튜플로 변환
print(my_tuple)
# 튜플 → 리스트
my_tuple = (4, 5, 6)
my_list = list(my_tuple) # 튜플을 리스트로 변환
print(my_list)
결과:
(1, 2, 3)
[4, 5, 6]
리스트와 튜플 간 변환은 데이터를 수정하거나 불변으로 유지해야 할 때 유용합니다.
7. 튜플 활용 예제
딕셔너리 키로 사용
location_data = {
(37.5665, 126.9780): "Seoul",
(40.7128, -74.0060): "New York"
}
print(location_data[(37.5665, 126.9780)]) # 튜플 키로 값 가져오기
결과:
Seoul
튜플은 불변 자료형이므로 딕셔너리의 키로 사용할 수 있습니다.
함수에서 여러 값 반환
def calculate(a, b):
return a + b, a - b # 여러 값을 튜플로 반환
result = calculate(10, 5)
print(result) # 튜플 형태로 반환
sum_val, diff_val = result # 언패킹
print(sum_val) # 덧셈 결과
print(diff_val) # 뺄셈 결과
결과:
(15, 5)
15
5
함수는 여러 값을 튜플로 반환할 수 있어 코드의 가독성을 높이고 반환 값을 효율적으로 처리할 수 있습니다.
8. 튜플 비교와 정렬
tuple1 = (1, 2, 3)
tuple2 = (1, 3, 2)
tuple3 = (1, 2, 3)
print(tuple1 == tuple3) # 값이 동일한지 비교
print(tuple1 < tuple2) # 사전 순으로 비교
결과:
True
True
튜플은 요소를 사전순으로 비교하며, 요소의 순서와 값에 따라 비교 결과가 달라집니다.
요약
- 튜플은 변경할 수 없는 순서 있는 값의 집합으로, 리스트와 유사하지만 불변성을 가지고 있습니다.
- 튜플은 인덱싱, 슬라이싱, 언패킹 등을 지원하며, count와 index 메서드만 제공합니다.
- 고정된 데이터를 저장하거나 여러 값을 반환할 때 유용하며, 딕셔너리의 키로도 사용할 수 있습니다.
튜플은 불변성과 효율성 때문에 안전하고, 가독성 높은 코드를 작성하는 데 유용합니다.
'파이썬 Python' 카테고리의 다른 글
파이썬 Python 실수(float) 사용하는 방법 (0) | 2024.11.30 |
---|---|
파이썬 Python 문자열 사용법 (1) | 2024.11.28 |
파이썬 정수(int) 함수 사용법 (1) | 2024.11.28 |
파이썬 Python 집합(Set) 사용법 (1) | 2024.11.27 |
파이썬(Python) JSON 처리 (0) | 2024.11.26 |
파이썬 Python 날짜와 시간 다루기 (0) | 2024.11.26 |
파이썬 Python 파일 경로 다루기 (0) | 2024.11.23 |
파이썬 Python 제너레이터와 이터레이터 사용하기 (0) | 2024.11.23 |