파이썬의 자료형 중 하나인 tuple (튜플)에 대하여 살펴보겠습니다.
tuple 은 순서가 있는 객체의 집합입니다.
List와 거의 유사하지만 tuple은 한번 생성되면 값을 변경할 수 없습니다. ( 추가, 수정, 삭제 불가 )
1. 선언방법
(소괄호) 안에 , (콤마)를 사용해 선언합니다.
>>> tupA = ('ABC', 132, True, -102)
>>> tupA
('ABC', 132, True, -102)
>>> type(tupA)
<class 'tuple'>
선언할 때 ( ) 괄호를 포함하지 않아도 튜플로 인식하긴 합니다. 그래도 소괄호를 사용하는 것을 추천드립니다.
>>> tupB = 'Apple', 321, False
>>> tupB
('Apple', 321, False)
>>> type(tupB)
<class 'tuple'>
2. 접근 및 연산
List처럼 순서가 있어 인덱스로 접근 가능합니다.
>>> tup = ('Apple', 'Banana', 'Orange')
>>> tup[0]
'Apple'
>>> tup[2]
'Orange'
반복문 또한 가능합니다.
>>> tup = ('Apple', 'Banana', 'Orange')
>>> for fruit in tup:
print(fruit)
'Apple'
'Banana'
'Orange'
+ 연산으로 추가 및 * 연산으로 반복할 수 있습니다.
>>> tupA = (1,2,3)
>>> tupA = tupA + (4,5)
>>> tupA
(1,2,3,4,5)
>>> tupA * 2
(1,2,3,4,5,1,2,3,4,5)
본문 최상단에서 추가, 수정, 삭제할 수 없다고 했는데 왜 추가가 되는 가요라고 질문할 수 도 있는데
위 예를 보시면 사실 추가가 아니라 재할당입니다.
in 절을 사용하여 포함 여부를 확인할 수 있습니다.
>>> tup = (2,4,6,8,10)
>>> 'Apple' in tup
False
>>> 4 in tup
True
>>> 5 not in tup
True
3. 여러 값 한 번에 리턴하기
tuple을 사용하면 여러 값을 한 번에 리턴할 수 있으며
한번에 여러 변수를 할당할 수 있습니다.
>>> def minAndMax(numbers):
return min(numbers), max(numbers)
>>> minAndMax([1,3,2,4,5,7,11])
(1,11)
>>> minNum, maxNum = minAndMax([1,3,5,7,9,11])
>>> minNum
1
>>> maxNum
11
4. 변수값 동시교환
보통의 프로그래밍 언어에서는 두 변수의 값을 서로 바꾸려면 새로운 변수가 필요하지만
tuple에서는 변수값 동시교환이 가능합니다 아래 예시처럼 바로 바꿔집니다.
>>> itemA = 'Apple'
>>> itemB = 'Grape'
>>> itemA, itemB = itemB, itemA
>>> itemA
'Grape'
>>> itemB
'Apple'
5. tuple 변환 - tuple(iterable Object)
순서가 있는 객체들은 tuple로 변형할 수 있습니다.
>>> tuple([1,2,3,4,5])
(1,2,3,4,5)
>>> tuple("Apple")
('A','p','p','l','e')