본문 바로가기

파이썬 튜터리얼 정리 5.3 자료구조 - 튜플과 시퀀스

파이썬 튜터리얼 정리 

5.3 자료구조 - 튜플과 시퀀스 タプルとシーケンス



- 시퀀스 형 : list, tuple, range, String..

- 파이썬은 진화하는 언어이기 때문에, 후에 다른 시퀀스 자료형이 추가 될 수 있습니다.




* 튜플


- 쉼표로 구분, 여러 값으로 구성

- 괄호 ( )

- 튜플의 개별 항목에 대입하는 것은 불가능 

   but 리스트와 같은 가변객체를 포함하는 튜플을 만들 수 는 있음

- 리스트는 '가변' / 튜플은 '불변'

- 보통 이질적인 요소들의 시퀀스를 포함

- 언 패킹, 인덱싱으로 액세스


ex)

>>> t = 12345, 54321, 'hello!'
>>> t[0]
12345
>>> t
(12345, 54321, 'hello!')
>>> # Tuples may be nested:
... u = t, (1, 2, 3, 4, 5)
>>> u
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
>>> # Tuples are immutable:
... t[0] = 88888
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> # but they can contain mutable objects:
... v = ([1, 2, 3], [3, 2, 1])
>>> v
([1, 2, 3], [3, 2, 1])



* 값0개 또는 1개의 튜플

- 0개 : 빈 괄호

- 1개 : 값뒤에 쉼표를 붙여서

>>> empty = ()
>>> singleton = 'hello',    # <-- note trailing comma
>>> len(empty)
0
>>> len(singleton)
1
>>> singleton
('hello',)



 t = 12345, 54321, 'hello!' 는 '튜플 패킹' 의 예


* 시퀀스 언 패킹

>>> x, y, z = t


'다중 대입'은 사실 튜플 패킹과 시퀀스 언 패킹의 조합일 뿐