1. 튜플
여러 가지 데이터 타입의 값을 저장할 수 있는, 변경 불가능(immutable)한 순서가 있는 컬렉션입니다.
튜플은 괄호 ()를 사용하여 생성하고, 항목들은 쉼표 ,로 구분됩니다.
tu1 = (1,) # 요소를 1개만 저장할 때 ,를 꼭 뒤에 써주어야 튜플 형식으로 저장된다.
tu2 = (1, 3, 5, 7)
tu3 = 1, 3, 5, 7 # 소괄호를 치지 않아도 여러 항목을 저장하면 기본적으로 튜플의 형태로 저장이 된다.
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 |