더북(TheBook)

10.2.2 [ ]와 인덱스를 사용해 튜플의 원소를 가져오거나 슬라이스 얻기

튜플이 객체의 시퀀스이므로 튜플에 대해 인덱스를 사용하는 것도 문자열의 경우와 같다. [] 연산자를 사용하며 첫 번째 객체의 인덱스는 0이고, 두 번째 객체의 인덱스는 1이다. 예를 들면 다음과 같다.

(3, 5, "7", "9")[1]5로 계산된다.

(3, (3, 5), "7", "9")[1](3,5)로 계산된다.

문자열과 다른 점은 튜플 객체 안에 다른 튜플이 들어갈 수 있다는 점이다. 예를 들어 (3, (3, ("5", 7), 9), "a")는 1번 인덱스에 있는 객체가 (3, ("5", 7), 9)라는 다른 튜플이다. 그리고 이 튜플의 1번 인덱스 위치(두 번째) 객체는 다시 ("5", 7)이라는 튜플이다.

이렇게 튜플 안에 튜플이 내포된 경우 인덱스 연산을 연달아 쓰면 안쪽 튜플에 깊숙이 들어 있는 원소에 접근할 수 있다. 예를 들어 (3, (3, ("5", 7), 9), "a")[1][1][1]은 7로 계산된다. 이 과정은 튜플 안에 튜플이 계속 내포되기 때문에 조금 복잡하다. 이 식을 계산하는 과정을 그림 10-1에 나타냈다.

▲ 그림 10-1 (3, ("5", 7), 9) 튜플의 구조. 점선으로 튜플 안에 들어 있는 객체를 구분했다

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.