파이썬 자료형 (튜플)

윤태영·2023년 11월 7일
0
post-thumbnail

이미지 출처: https://wikidocs.net/192339

저번에 배운 리스트에 이어서 튜플을 배워보자 튜플은 리스트와 비슷한 점이 많습니다.
저번에 리스트를 배웠기에 튜플은 쉬울것이다.

튜플(Tuple) 사용법

  • 튜플 선언
  • 튜플 특징
  • 튜플 슬라이싱
  • 튜플 함수
  • 팩킹 & 언팩킹

튜플(Tuple)은 불변(immutable)한 시퀀스 타입입니다. 이는 한 번 생성되면 그 내용을 변경할 수 없다는 의미입니다. 튜플은 여러 가지 면에서 리스트와 유사하지만, 주요 차이점은 튜플이 변경 불가능하다는 점입니다.

튜플 선언 📕

  • 리스트와 비교 중요
  • 튜플 자료형(순서O, 중복O, 수정X, 삭제X)
  • 불변(한번 선언해서 끝까지 쓴다.)
  • 중요한 데이터들을 한번만 저장해서 절대 변경되면 안되는 값들을 저장할때 사용
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)

튜플 함수 📕

  • index
  • count

위의 함수들은 리스트에 쓰일때와 기능은 같다.튜플은 이 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 and Unpacking) - 중요!!!📕

파이썬에서 팩킹(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

다음 시간에는 딕셔너리에 대해 알아보겠습니다.🧐

출처 : 인프런

profile
ice blue

0개의 댓글