- Python - 프로그래밍 시작하기
- Python 기초 (Basics)
- Python 변수 (Variables)
- Python 연산자 (Operators)
- Python 리스트 (List)
- Python 튜플 (Tuple)
- Python 문자열 (Strings)
- Python 집합 (Sets)
- Python 딕셔너리 (Dictionary)
- Python 흐름 제어 (Flow control)
- Python 함수 (Function)
- Python 클래스 (Class)
- Python 내장 함수 (Built-in function)
- Python 키워드 (Keyword)
- Keyword - and
- Keyword - as
- Keyword - assert
- Keyword - break
- Keyword - class
- Keyword - continue
- Keyword - def
- Keyword - del
- Keyword - elif
- Keyword - else
- Keyword - except
- Keyword - False
- Keyword - for
- Keyword - from
- Keyword - global
- Keyword - if
- Keyword - import
- Keyword - in
- Keyword - is
- Keyword - lambda
- Keyword - None
- Keyword - not
- Keyword - or
- Keyword - pass
- Keyword - return
- Keyword - True
- Keyword - try
- Keyword - while
- Python 파일 다루기
- Python datetime 모듈
- Python time 모듈
- Python collections.deque
- Python collections.namedtuple
- Python의 선 (Zen of Python)
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
Python 튜플 (Tuple)¶
리스트, 튜플, 문자열은 파이썬의 기본적인 시퀀스 자료형입니다.
시퀀스 자료형은 인덱싱, 슬라이싱, 반복 등의 연산을 수행할 수 있고, 파이썬의 내장함수 len()을 사용하면 그 크기를 확인할 수 있습니다.
튜플 (Tuple)은 소괄호 사이에 콤마로 구분되는 값들의 목록입니다.
리스트와 마찬가지로 다양한 자료형을 포함할 수 있지만, 한 번 만들어지면 새로운 값을 할당할 수 없다는 차이가 있습니다.
이 페이지에서는 파이썬에서 튜플을 사용하는 방법에 대해 알아봅니다.
순서는 아래와 같습니다.
튜플 만들기¶
nums1 = (1, 2, 3)
nums2 = 1, 2, 3
vals = ('apple', 1, True)
nested = ([1, 2], (3, 4, 5), 'banana')
print(nums1)
print(nums2)
print(vals)
(1, 2, 3)
(1, 2, 3)
('apple', 1, True)
([1, 2], (3, 4, 5), 'banana')
nums1과 같이 튜플은 괄호 안에 콤마로 값들을 연결함으로써 만들 수 있습니다.
또한 nums2와 같이 괄호를 사용하지 않아도 콤마로 연결된 값들은 튜플이 됩니다.
튜플의 값들이 꼭 같은 자료형일 필요는 없습니다. 문자열, 숫자, 불 값 등 여러 자료형을 포함할 수 있습니다.
또한 리스트나, 또 다른 튜플을 포함할 수도 있습니다.
튜플 인덱싱¶
nums = (1, 2, 3, 4, 5)
print(nums[1])
print(nums[3])
print(nums[-1])
print(nums[-5])
2
4
5
1
리스트와 마찬가지로 양 또는 음의 인덱스를 이용해서 튜플의 값에 접근할 수 있습니다.
-1 인덱스를 사용해서 튜플의 맨 마지막 값에 쉽게 접근할 수 있습니다.
튜플의 인덱싱에 대해서 아래의 그림을 참고하세요.
튜플 슬라이싱¶
nums = (1, 2, 3, 4, 5)
print(nums[1:4])
print(nums[-4:-2])
print(nums[::2])
print(nums[::-2])
(2, 3, 4)
(2, 3)
(1, 3, 5)
(5, 3, 1)
또한 리스트와 마찬가지로 튜플의 일부 구간 또는 값을 가져오고 싶을 때 슬라이싱을 사용할 수 있습니다.
콜론 (:)의 앞이나 뒤에 숫자를 입력하지 않으면 맨 앞 또는 맨 뒤를 의미합니다.
음의 인덱스를 사용해서 슬라이싱을 할 수 있고, 스텝을 지정할 수도 있습니다.
예를 들어, nums[::2]는 튜플 nums를 처음부터 끝까지 2의 스텝으로 슬라이싱합니다.
튜플의 슬라이싱에 대해서 아래의 그림을 참고하세요.
튜플 값 변경하기¶
nums = (1, 2, 3, 4, 5)
nums[1] = 0
TypeError: 'tuple' object does not support item assignment
하지만 리스트와 달리, 튜플은 값을 변경할 수 없습니다.
튜플 값 삭제하기¶
nums_list = [1, 2, 3, 4, 5]
del nums_list[0]
print(nums_list)
nums_tuple = (1, 2, 3, 4, 5)
del nums_tuple[0]
print(nums_tuple)
[2, 3, 4, 5]
TypeError: 'tuple' object doesn't support item deletion
또한 del 키워드를 사용해서 리스트의 값을 삭제했던 것과 달리, 튜플의 값은 삭제할 수 없습니다.
하지만 튜플 자체를 삭제하는 것은 가능합니다.
튜플 메서드 (count(), index())¶
nums = (1, 1, 3, 2, 5, 3, 2, 1, 4)
print(nums.count(1))
print(nums.index(3))
3
2
count(x) 메서드는 튜플에서 값 x가 몇 개 있는지 반환합니다.
index(x) 메서드는 튜플에서 값 x의 인덱스를 반환합니다. 여러개인 경우 가장 먼저 발견되는 값의 인덱스를 반환합니다.
튜플의 기능이 대체로 리스트와 비슷하지만, 리스트와 비교해서 튜플은 아래와 같은 장점을 갖습니다.
크기가 큰 경우 리스트에 비해 튜플이 빠른 반복 (iterate) 동작이 가능합니다.
튜플이 변경할 수 없는 값들을 갖기 때문에 딕셔너리의 키로 사용할 수 있습니다.
같은 자료형일 때는 리스트를, 다른 자료형의 값들에 대해서는 튜플을 사용하는 것이 좋습니다.