낚시왕강군

튜플(tuple)은 리스트와 비슷하지만 한번 값을 정하면 내부의 값을 변경할 수 없다.

 

     

튜플의 특징

쉼표(',')로 구분되는 여러 값(숫자, 문자열, bool 등)으로 구성된다.

#튜플(tuple) 예제

>>> tuple = 1, '2는 two', 3              #여러 값(자료형)으로 구성
>>> tuple
(1, '2는 two', 3)
>>> tuple = (1, '2는 two', 3, 4)
>>> tuple
(1, '2는 two', 3, 4)

>>> tuple = (1, '2는 two', 3, 4)
>>> tuple[4]                              #튜플 인덱싱이 0~3이어서 인덱스 오류가 난 모습
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
>>> tuple[3]
4

위의 예제처럼 리스트(list)와 거의 유사하지만 내부 값(요소)을 변경할 수 없다. 

그래서 튜플을 사용할 때는 값(요소)가 절대 변경되지 않고 계속 유지되어야 할 때 사용한다. 반대로 값이 자주 변경되어야 할 때는 리스트를 사용한다.

튜플의 용법

인덱싱과 슬라이싱

# 튜플 인덱싱 (0, 1, 2, 3) <> (-4, -3, -2, -1)

>>> tuple[-2]
3
>>> tuple[-4]
1

# 튜플 슬라이싱 (:)

>>> tuple[1:]
('2는 two', 3, 4)
>>> tuple[-1:-4]
()
>>> tuple[-4:-1]
(1, '2는 two', 3)

리스트와 거의 유사함을 알 수 있다.

튜플 붙이기

>>> tuple = tuple + ('7은 seven')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "str") to tuple      #문자열(str)이어서 붙일 수 없어.
>>> tuple + (3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "int") to tuple      #정수형(int)이어서 붙일 수 없어.

튜플은 가변적이지 않기 때문에 붙이기를 사용할 수 없다.

튜플 데이터 삽입/삭제

# 튜플을 삽입할 때는 + 연산자

>>> tuple = tuple + (5, 6)
>>> tuple
(1, '2는 two', 3, 4, 5, 6)

>>> tuple = tuple + ('7은 seven', 8)
>>> tuple
(1, '2는 two', 3, 4, 5, 6, '7은 seven', 8)

튜플에 데이터를 삽입할 때는 '+' 연산자를 이용하면 된다. 단, 튜플형끼리만 사용할 수 있다.

리스트처럼. append() 같은 함수를 제공하지 않는다.

튜플은 리스트처럼 len() 함수를 이용해 튜플 내부 값의 개수를 확인할 수 있다.

>>> len(tuple)
10

튜플의 삭제는 del() 함수를 이용할 수 있지만 리스트처럼 내부 값의 일부를 제거할 수 없고 튜플 전체를 비워야 한다.

>>> del tuple(0)
  File "<stdin>", line 1
SyntaxError: cannot delete function call
>>> del tuple()
  File "<stdin>", line 1
SyntaxError: cannot delete function call
>>> del tuple
>>> tuple
<class 'tuple'>

튜플의 중첩

튜플끼리의 중첩은 가능하지만 리스트 같은 가변 객체를 포함할 수는 없다.

>>> tuple = (1, 2, 3)
>>> tuple
(1, 2, 3)
>>> tuple1= (4, 5, '6은 six')
>>> tuple1
(4, 5, '6은 six')
>>> sum = tuple, tuple1
>>> sum
((1, 2, 3), (4, 5, '6은 six'))

튜플 패킹 / 언패킹

튜플 패킹은 변수에 튜플을 할당하는 것을 의미하며 언패킹은 변수에 할당된 튜플을 여러 변수에 저장하는 것을 말한다.

쉽게 선물 상자안에 여러 개를 포장하는 것을 패킹, 포장을 풀어 여러 개를 꺼내어 따로 두는 것을 언패킹이라 보면 될 것이다.

# 튜플 패킹과 언패킹

>>> tuple = 1, 2, 3    # 패킹
>>> tuple
(1, 2, 3)
>>> a, b, c = tuple    # 언패킹
>>> a;b;c
1
2
3

여기까지 보았듯이 출력되는 튜플은 항상 괄호'()'로 쌓여 있는 점을 유심히 본다면 리스트와 튜플의 구분이 조금은 쉬울 것이다.

오늘은 여기까지이다. 스스로 지금까지 배웠던 다양한 구문들을 조합하여 테스트해 본다면 이해가 더 빠를 것이다.

다음 시간에는 집합(set)에 대해 공부해보도록 하겠다.

파이썬 집합(set)

 

 

[python] 파이선 / 파이썬 집합

파이썬의 집합(set)은 수학 시간에 배웠던 집합을 한 번 떠올려보면 이해가 쉬울 것이다. 집합의 특징 집합(set)은 중복되는 요소가 없고 순서가 없는 컬렉션으로 집합을 생성할 때는 set() 생성자��

winding-roads.tistory.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading