본문 바로가기
파이썬

파이썬 컬렉션 (튜플)

by 코낄2 2023. 9. 5.

1. 튜플

여러 가지 데이터 타입의 값을 저장할  있는, 변경 불가능(immutable) 순서가 있는 컬렉션입니다.

튜플은 괄호 () 사용하여 생성하고, 항목들은 쉼표 , 구분됩니다.

tu1 = (1,)    # 요소를 1개만 저장할 때 ,를 꼭 뒤에 써주어야 튜플 형식으로 저장된다.
tu2 = (1, 3, 5, 7)
tu3 = 1, 3, 5, # 소괄호를 치지 않아도 여러 항목을 저장하면 기본적으로 튜플의 형태로 저장이 된다.
 
print(type(tu3))     >> <class 'tuple'>

(1) 인덱싱

튜플의  항목은 순서(인덱스) 가지고 있으며, 인덱스를 사용하여 접근할  있습니다. 인덱스는 0부터 시작합니다.

tu4 = ('apple', 'banana', ('🍉','🍓'))
 
print(tu4[0])          >> apple
print(tu4[2][0])      >> 🍉

(2) 슬라이싱

튜플의 일부분만을 추출할  있습니다.

tu1 = (1, 2, 'apple', 'banana')
 
print(tu1[1:])       >>(2, 'apple', 'banana')
print(tu1[1:3])     >>(2, 'apple')

(3) 연산

튜플 간의 + 연산으로 리스트를 결합할  있고, * 연산으로 리스트를 반복할  있습니다.

다만, 튜플은 변경 불가능한 컬렉션으로 데이터의 값을 수정하는 것은 불가능합니다.

tu1 = (10, 20, 30)
tu2 = (40, 50, 60)

print(tu1 + tu2)           >>(10, 20, 30, 40, 50, 60)
print(tu2 + tu1)           >>(40, 50, 60, 10, 20, 30)    # 데이터에 순서가 있음.

tu1 = tu1 + (40, 50)
print(tu1) # 안에 요소 수정이 아니고 아예 새로운 주소를 생성하는 것이어서 가능
 
# tu1[0] = '40'  #TypeError: 'tuple' object does not support item assignment  
 
print(tu1*3)                 >>(10, 20, 30, 40, 50, 10, 20, 30, 40, 50, 10, 20, 30, 40, 50)
 
tu3 = (10, 20, 30)
print(tu3[0] + tu3[2])   >> 40

(4) 언패킹

튜플의 항목들은 변수들에 할당될  있습니다. (리스트도 가능)

apple, banana = ('김사과', '반하나') 
print(apple)         >> 김사과
print(banana)      >> 반하나

(5) 멤버십 테스트

in 연산자를 사용하여 튜플에 특정 값이 있는지 확인할  있습니다. (리스트도 가능)

tu7 = (2,4,6,8,10)
2 in tu7          >> True

(7) 튜플의 정렬

튜플은 수정이 불가하기 때문에 sort() 메소드는 없습니다. 다만 sorted() 함수를 이용하여 새로 생성 후 저장은 가능합니다.

# sort는 안에 데이터를 수정 후 재저장하는 in-place 연산. sorted 함수는  결과를 새로운 리스트에 담아 반환하는 함수.

tu1 = (1, 3, 2, 0)
tu1 = sorted(tu1) # sorted의 반환형은 리스트
print(tu1)       >> [0, 1, 2, 3]
 

(8) 변환

튜플을 리스트로, 리스트를 튜플로 변환할 수 있습니다.

tu1 = (1, 2, 3, 4)
print(type(tu1))       >> <class 'tuple'>
li1 = list(tu1)
print(type(li1))         >> <class 'list'>
tu2 = tuple(li1)       
print(type(tu2))       >> <class 'tuple'>
print(type(tu1))       >> <class 'tuple'>

'파이썬' 카테고리의 다른 글

파이썬 컬렉션{세트}  (0) 2023.09.06
input 함수  (0) 2023.09.05
파이썬 컬렉션 타입[리스트]  (0) 2023.09.04
문자열  (0) 2023.09.01
파이썬 변수  (0) 2023.09.01