23.8 튜플의 정보를 구하고 연산하기

이번에는 튜플의 메서드를 사용해보고 연산자로 연산을 해보겠습니다. 튜플은 리스트와는 달리 append, extend, insert, remove, pop 등은 사용할 수 없고, 값의 정보를 구하는 index, count 메서드만 사용할 수 있습니다. 변경, 삭제를 제외한 기타 기능은 리스트와 같습니다.

index로 특정 값의 인덱스를 구합니다. 53은 세 번째에 있으므로 인덱스 2가 나옵니다.

>>> a = (38, 21, 53, 62, 19)
>>> a.index(53)
2

count로 특정 값의 개수를 구합니다. 20은 두 개 있으므로 2가 나옵니다.

>>> a = (10, 20, 30, 20, 40)
>>> a.count(20)
2

이번에는 덧셈, 곱셈 연산자입니다. 튜플은 내용을 변경할 수는 없지만 +, * 연산자를 사용하여 새로운 튜플을 만들어낼 수는 있습니다.

>>> a = (10, 20, 30)
>>> b = (1, 2, 3)
>>> c = a + b
>>> c
(10, 20, 30, 1, 2, 3)
>>> d = a * 3
>>> d
(10, 20, 30, 10, 20, 30, 10, 20, 30)

in 연산자를 사용해서 값이 있는지 확인할 수도 있습니다.

>>> a = (38, 21, 53, 62, 19)
>>> 53 in a
True

for 반복문으로 요소의 값을 출력하는 방법도 리스트와 같습니다.

>>> a = (38, 21, 53, 62, 19)
>>> for i in a:
...     print(i, end=' ')
...
38 21 53 62 19

리스트 표현식과 같은 방식으로 튜플을 생성할 때는 다음과 같이 tuple 안에 for 반복문과 if 조건문을 지정하면 됩니다.

  • tuple(식 for 변수 in 리스트 if 조건식)
>>> a = tuple(i for i in range(10) if i % 2 == 0)
>>> a
(0, 2, 4, 6, 8)

map 함수와 사용 방법도 리스트와 같습니다.

>>> a = (1.2, 2.5, 3.7, 4.6)
>>> a = tuple(map(int, a))
>>> a
(1, 2, 3, 4)

물론 min, max 함수로 가장 작은 수와 가장 큰 수를 구하고, sum 함수로 요소의 합계를 구할 수도 있습니다.

>>> a = (38, 21, 53, 62, 19)
>>> min(a)
19
>>> max(a)
62
>>> sum(a)
193