MINERVA/Python 2022. 5. 31. 11:11
반응형

튜플(tuple)을 간단히 말하면 변경할수 없는(immutable) 시퀀스 자료형(sequence type)입니다.

그런데, 앞에서 학습한 리스트(list)가 있는데 왜? 튜플(tuple)이 있을까?

그 이유는, 튜플은 리스트에 비해서, 가볍고(즉, 빠르다)고 메모리를 작게 사용합니다.(이 부분은 별도로 정리하겠습니다.)

 

튜플(tuple) 사용 용례를 정리하면 다음과 같습니다.

 

#########################################
#   [튜플(Tuple) 실습]
#   1) sequence types 실습: indexing, slicing, concatenating, iterating, size
#   2) 왜? Tuple을 사용할까? 리스트로 다하면 되는데?
#       -> 메모리를 절약하고, 성능이 더 좋다.
#####
# 1) 인덱싱(indexing)
print(aTuple)
print(aTuple[0])    #  0 인덱스: Tuple 객체의 맨 처음
print(aTuple[-1])   # -1 인덱스: Tuple 객체의 맨 마지막

# tuple안의 tuple: 기준값을 저장할때 많이 사용
dTuple = ( (1,2,3), ('a','b','c'))
print(dTuple)
print(dTuple[0])
print(dTuple[1])
print(dTuple[0][1])
print(dTuple[1][0])
[결과]
(1, 2, 3, 4, 5, 6, 7, 8, 9)
1
9
((1, 2, 3), ('a', 'b', 'c'))
(1, 2, 3)
('a', 'b', 'c')
2
a
# 2) 슬라이싱(slicing)
print(aTuple[1:])   # 인덱스 1부터 마지막까지
print(aTuple[:4])   # 인덱스 처음(0)부터 인덱스 4까지
print(aTuple[1:3])  # 인덱스 1부터 인덱스 5까지
print(aTuple[:])    # 인덱스 처음 마지막까지

print(aTuple[1:9:2])  # 인덱스 1부터, 9까지, 2간격으로 추출
[결과]
(2, 3, 4, 5, 6, 7, 8, 9)
(1, 2, 3, 4)
(2, 3)
(1, 2, 3, 4, 5, 6, 7, 8, 9)
(2, 4, 6, 8)
# 3) 연결(concatenating)
bTuple = ('a','b','c','d')
cTuple = aTuple + bTuple
print(cTuple)
[결과]
(1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd')
# 4) 반복(iterating)
print(bTuple*3)
[결과]
('a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd')
# 5) 크기(sizing)
print(len(bTuple))
[결과]
4
반응형
posted by choiwonwoo
: