Please Enable JavaScript!
Gon[ Enable JavaScript ]

파이썬 Python 튜플(Tuple) 사용법

파이썬 Python
반응형

파이썬의 튜플은 불변(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 메서드만 제공합니다.
  • 고정된 데이터를 저장하거나 여러 값을 반환할 때 유용하며, 딕셔너리의 키로도 사용할 수 있습니다.

튜플은 불변성과 효율성 때문에 안전하고, 가독성 높은 코드를 작성하는 데 유용합니다.

반응형
Posted by 녹두장군1
,