이미지 출처: https://wikidocs.net/192339
저번에 배운 리스트에 이어서 튜플을 배워보자 튜플은 리스트와 비슷한 점이 많습니다.
저번에 리스트를 배웠기에 튜플은 쉬울것이다.
튜플(Tuple) 사용법
튜플(Tuple)은 불변(immutable)한 시퀀스 타입입니다. 이는 한 번 생성되면 그 내용을 변경할 수 없다는 의미입니다. 튜플은 여러 가지 면에서 리스트와 유사하지만, 주요 차이점은 튜플이 변경 불가능하다는 점입니다.
a =() b = (1,) # 원소가 하나일때는 콤마를 해주어야 튜를로 된다. c = (11, 12, 13, 14) d = (100, 1000, 'Ace', 'Base', 'Captine') e = (100, 1000, ('Ace', 'Base', 'Captine')) # 튜플도 리스트와 같이 중첩가능
리스트와 같은 방식이기에 자세히 설명하지 않겠습니다.😀
d = (100, 1000, 'Ace', 'Base', 'Captine') e = (100, 1000, ('Ace', 'Base', 'Captine')) # 튜플도 리스트와 같이 중첩가능 print('d - ', d[1]) >>> d - 1000 print('d - ', d[0] + d[1] + d[1]) # 100+1000+1000 >>> d - 2100 print('d - ', d[-1]) >>> d - Captine print('e - ', e[-1]) # 중첩된것을 가져온다. >>> e - ('Ace', 'Base', 'Captine') print('e - ', e[-1][1]) >>> e - Base print('e - ', list(e[-1][1])) >>> e - ['B', 'a', 's', 'e'] d[0] = 1500 # 수정이 안되는지 확인해보자. >>> TypeError: 'tuple' object does not support item assignment # 튜플은 불변의 객체이므로 수정이나 삭제가 안된다 기억하자!!!!!
슬라이싱 역시 리스트와 같은 방식이기에 자세히 설명하지 않겠습니다.😀
d = (100, 1000, 'Ace', 'Base', 'Captine') e = (100, 1000, ('Ace', 'Base', 'Captine')) print('d - ', d[0:3]) >>> d - (100, 1000, 'Ace') print('d - ', d[2:]) >>> d - ('Ace', 'Base', 'Captine') print('e - ', e[2][1:3]) >>> e - ('Base', 'Captine')
튜플의 연산은 내부의 원소가 변경되거나 삭제되지 않으면, 연산을 통한 튜플의 어떤 원소의 갯수가늘어나는것은 허용, 리스트와 같이 연산이 된다.
c = (11, 12, 13, 14) d = (100, 1000, 'Ace', 'Base', 'Captine') print('c + d', c + d) >>> c + d (11, 12, 13, 14, 100, 1000, 'Ace', 'Base', 'Captine') print('c * 3', c * 3) >>> c * 3 (11, 12, 13, 14, 11, 12, 13, 14, 11, 12, 13, 14)
위의 함수들은 리스트에 쓰일때와 기능은 같다.튜플은 이 2개의 함수만 알고 있어도 충분하다.🤔
a = (5, 2, 3, 1, 4) print('a - ', a.index(3)) ## 3이라는 값의 위치는?? >>> a - 2 print('a - ', a.count(2)) # 튜플a에 2는 몇개나 있을까? >>> a - 1
파이썬에서 팩킹(Packing)과 언팩킹(Unpacking)은 튜플, 리스트와 같은 시퀀스 데이터 타입을 다룰 때 사용되는 강력한 기능입니다.
팩킹
t = ('foo', 'bar', 'baz', 'qux') # 4개의 원소를 하나로 묶은것, 이것을 팩킹(=튜플을 선언하는것) print(t[0]) >>> foo print(t[-1]) >>> qux
언팩킹
x1 = foo
x2 = bar
x3 = baz
x4 = quz
위와같이 대입된다.
t = ('foo', 'bar', 'baz', 'qux') (x1, x2, x3, x4) = t # 묶여있던걸 풀어서 각각의 순서에 맞는 원소에 대입이 되는것 이것이 언팩킹 print(type(x1), type(x2), type(x3), type(x4)) >>> <class 'str'> <class 'str'> <class 'str'> <class 'str'> print(x1, x2, x3, x4) foo bar baz qux
t2 = 1, 2, 3 # 괄호가 없어도 튜플(팩킹) t3= 4, x1, x2, x3 = t2 # 언팩킹 x4, x5, x6 = 4, 5, 6 # 튜플로 되있던걸 풀어서 언팩킹해서 각각 원소 할당 print(t2) >>> (1, 2, 3) print(t3) >>> (4,) print(x1, x2, x3) >>> 1 2 3 print(x4, x5, x6) >>> 4 5 6
다음 시간에는 딕셔너리에 대해 알아보겠습니다.🧐