Tuple은 데이터 순서는 보장되지만 변경은 불가능한 Collection입니다.
이 글에서는 Tuple을 사용하는 방법에 대해서 알아보겠습니다.
생성(Create)
Tuple은 다음과 같이 (...)
을 사용하여 생성을 합니다.
cities = ('Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris')
print(cities)
Ouput:
('Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris')
비어있는 Tuple을 생성하고 싶다면, 다음과 같이 ()
으로 정의하면 됩니다.
type()
으로 타입을 확인해보면 생성된 객체가 Tuple임을 알 수 있습니다.
this_is_tuple = ()
print(type(this_is_tuple)) # <class 'tuple'>
주의할 점은, 다음과 같이 하나의 아이템을 갖고 있는 Tuple을 정의하려다가 string 타입으로 정의하는 경우입니다. 아래 코드의 변수는 Tuple같지만 String입니다.
this_is_not_tuple = ("Seoul")
print(type(this_is_not_tuple)) # <class 'str'>
1개의 아이템을 갖고 있는 Tuple을 정의하고 싶다면 comma를 추가하여 String이 아닌 Tuple이라고 명확하게 정의해줘야 합니다.
this_is_tuple = ("Seoul",)
print(type(this_is_tuple)) # <class 'tuple'>
접근(Access)
Tuple이 갖고 있는 데이터를 읽으려면 Tuple[index]
와 같은 방식으로 접근하면 됩니다.
cities = ('Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris')
print(cities[0])
print(cities[2])
Ouput:
Seoul
Beijing
음수 방향의 Index
파이썬은 음수 방향의 Index도 지원합니다.
-1
은 뒤에서 가장 첫번째 index를 가리킵니다.
cities = ('Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris')
print(cities[-1])
Output:
Paris
범위 접근
시작과 끝의 index를 인자로 전달하여 여러개의 아이템을 가져올 수 있습니다.
문법은 Tuple[start_index:end_index]
이며, start_index
는 포함하고 end_index
는 포함하지 않는 Tuple을 리턴합니다.
아래 코드를 보시면 cities[1:3]
는 Index 1을 포함하고, Index 3을 포함하지 않는 Index 2까지의 Tuple을 리턴합니다.
cities = ('Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris')
print(cities[1:3])
print(cities[-3:-1])
Ouput:
('Tokyo', 'Beijing')
('Beijing', 'Washington')
업데이트(Update)
Tuple은 변경이 불가능한 Collection이기 때문에 다음과 같이 데이터 변경은 불가능합니다. 아래 코드는 실행 중에 에러를 발생시킵니다.
cities = ('Seoul', 'Tokyo', 'Beijing')
cities[3] = 'Bangkok' # runtime error!
Ouput:
Traceback (most recent call last):
File "/home/js/blog-code/python_example/tuple_example.py", line 34, in <module>
cities[3] = 'Bangkok' # error
TypeError: 'tuple' object does not support item assignment
꼭 변경이 필요하다면 다음과 같이 Tuple을 List로 변경한 뒤에 데이터를 수정하고, 다시 Tuple로 변경하는 방법이 있습니다.
cities = ('Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris')
cities_list = list(cities)
cities_list[0] = 'Bangkok'
cities = tuple(cities_list)
print(cities)
Ouput:
('Bangkok', 'Tokyo', 'Beijing', 'Washington', 'Paris')
또는 다음과 같이 두개의 Tuple을 더하여 새로운 Tuple을 만드는 방법도 있습니다.
cities1 = ('Seoul', 'Tokyo', 'Beijing')
cities2 = ('Washington', 'Paris')
cities = cities1 + cities2
Output:
('Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris')
삭제(Delete)
다음과 같이 del
키워드로 Tuple 객체를 삭제할 수 있습니다.
cities = ('Seoul', 'Tokyo', 'Beijing')
del cities
데이터를 갖고 있는지 확인
if in
또는 if not in
을 사용하여 특정 데이터가 Tuple에 존재하는지, 존재하지 않는지 확인할 수 있습니다.
if 'Seoul' in cities:
print('Seoul is in cities.')
if 'Bangkok' not in cities:
print('Bangkok is not in cities.')
Output:
Seoul is in cities.
Bangkok is not in cities.
순회(Loop)
다음과 같이 for in을 사용하여 Tuple의 모든 데이터를 순회할 수 있습니다.
cities = ('Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris')
for city in cities:
print(city)
Output:
Seoul
Tokyo
Beijing
Washington
Paris
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)