튜플

 

- 값의 수정이나 변경, 추가, 제거가 불가능하다. 변경 불가능한 리스트라고 이해

- 하지만 리스트에서 튜플 튜플에서 리스트로 변경은 가능

- 인덱싱 슬라이싱 리스트와 동일

- 모듈이나 기본함수의 출력값의 형식으로 많이 산출됨 

 

생성

tuple_ = ('a','b','c','d')
print(tuple_)
('a', 'b', 'c', 'd')

인덱싱, 슬라이싱

print(tuple_[2])
print(tuple_[-1])
print(tuple_[:2])
print(tuple_[::-1])
c
d
('a', 'b')
('d', 'c', 'b', 'a')

리스트와 동일하게 인덱싱 슬라이싱 가능하고 슬라이싱의 결과는 튜플 형태로 출력된다.

 

수정 및 추가

tuple_[0] = 'A'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-72-c25b0f105887> in <module>
----> 1 tuple_[0] = 'A'

TypeError: 'tuple' object does not support item assignment

수정 및 추가 삭제가 불가능하다.

 

리스트로의 변환을 활용한 추가, 제거

words = ['apple', 'banana', 'python', 'list', 'woo','woo','Java', 'won']

tuple_2 = tuple(words)
print(tuple_2, type(tuple_2), sep='  /  ')
tuple_2 = list(tuple_2)
print(tuple_2, type(tuple_2), sep='  /  ')
tuple_2.append('g')
tuple_2 = tuple(tuple_2)
print(tuple_2, type(tuple_2), sep='  /  ')
('apple', 'banana', 'python', 'list', 'hye', 'woo', 'Java', 'won')  /  <class 'tuple'>
['apple', 'banana', 'python', 'list', 'hye', 'woo', 'Java', 'won']  /  <class 'list'>
('apple', 'banana', 'python', 'list', 'hye', 'woo', 'Java', 'won', 'g')  /  <class 'tuple'>

변경을 원하는 경우에는 먼저 리스트로 형변환 이후에 변경하고 다시 튜플로 변환하면 가능하다 

 

index, count

words = ('apple', 'banana', 'python', 'list', 'woo','woo','Java', 'won')


print('apple' in words)
print('grape' in words)

print(words.index('apple'))
print(words.count('woo'))
True
False
0
2

 

함수의 결과

nums = [3,56,6,2]

def base_stat(list_):
    return max(list_),min(list_)

base_stat(nums)
(56, 2)

튜플의 변경이 불가능하다는 특성 때문인지 함수의 반환결과는 튜플로 반환되는 경우가 많습니다.

import pandas as pd
df = pd.read_csv('address.csv')
df.shape
(3042, 2)

+ Recent posts