본문 바로가기
파이썬/파이썬 기초 문법

파이썬 컬렉션 타입 (2) 튜플

by 쵠몽 2024. 9. 26.

1. 튜플 생성

변경할 수 없는(immutable) 여러 가지 데이터 타입의 값을 저장할 수 있는 컬렉션

tu1 = ()
print(tu1)
print(type(tu1))

 

요소가 1개일 경우 다음과 같이 작성하면 튜플이 아닌 소괄호를 사용한 계산으로 인식한다.

 

tu1 = (1)
print(tu1)
print(type(tu1))

 

따라서 요소가 1개일 경우 끝에 콤마를 붙여 줘야 한다.

tu1 = (1,) # 요소가 1개일 경우 끝에 콤마를 꼭! 붙여야 함
print(tu1)
print(type(tu1))
tu2 = (1, 3, 5, 7)
print(tu2)
print(type(tu2))
tu4 = 1, 3, 5, 7
print(tu4)
print(type(tu4))
num1 = 10
num2 = 20
num3 = 30
tu4 = num1, num2, num3
print(tu4)

result1, result2, result3 = tu4
print(result1)
print(result2)
print(result3)
tu5 = ('apple', 'banana', ('🍎', '🍌'))
print(tu5)
print(type(tu5))
print(tu5[0])
print(type(tu5[0]))
print(tu5[2][0])
print(type(tu5[2]))
tu5 = ('apple', 'banana', ('🍎', '🍌'))
# tu5 = 'orange' 가능
# tu5[0] = 'orange' #TypeError: 'tuple' object does not support item assignment
print(tu5)
tu5 = ('apple', 'banana', ['🍎', '🍌'])
print(tu5)
print(tu5[2][0])
tu5[2][0] = '🍗'
print(tu5)
print(type(tu5[2]))

# tu5[2] = '🍙' # TypeError: 'tuple' object does not support item assignment

 

 

2. 인덱싱과 슬라이싱

인덱싱을 하면 차원이 하나 낮아지고, 슬라이싱을 하면 차원이 유지된다.

tu6 = (1, 2, 'apple', 'banana')
print(tu6[0])
print(tu6[-1])

print(tu6[1:])
print(tu6[1:3])

 

 

 

3. 연산

tu7 = (10, 20, 30)
tu8 = (40, 50, 60)


print(tu7 + tu7)
print(tu8 + tu7)

tu7 = tu7 + (40, 50, 60)
print(tu7)

print(tu7 * 3)

 

 

4. 특정 값 확인

# in: 컬렉션에 포함되어 있는 요소인지 확인
print(2 in [2, 4, 6, 8, 10])
print(2 in (2, 4, 6, 8, 10))
print(7 in (2, 4, 6, 8, 10))

 

 

5. 정렬

tu9 = (10, 30, 100, 90, 50)
# tu9.sort() # 튜플은 sort 메서드가 존재하지 않음
result = sorted(tu9)
print(result)
result = tuple(result)
print(result)
tu9 = (10, 30, 100, 90, 50)
# 내림차순
result = sorted(tu9, reverse=True)
print(result)
result = tuple(result)
print(result)

 

 

6. 변환

tu3 = tuple([1, 3, 5, 7]) # 리스트를 튜플로 바꿀 경우
print(tu3)
print(type(tu3))
li3 = list(tu3) # 튜플을 리스트로 바꿀 경우
print(li3)
print(type(li3))