Programming

; develop a program

Back-End/Python

[Python] 자료구조 - Tuple(튜플)

Clloud_ 2022. 9. 19. 10:47
반응형

이번 포스팅에서는 파이썬의 4가지 자료구조 중 하나인 Tuple(튜플)에 대하여 공부를 해보고자 한다.

 


Tuple(튜플)

Tuple(튜플)은 리스트와 같이 원소들을 순서대로 저장하는 자료구조이다.

리스트와 거의 비슷하지만 원소를 변경할 수 없다는 점에서 서로 다르다.

 

Tuple(튜플)은 각 위치(index) 마다 정해진 의미가 있고 그 값이 한번 설정되면 바뀌지 않는 경우에 많이 사용된다.

 


Tuple 생성 

튜플은 리스트와 마찬가지로 원소(element)를 쉼표(,)로 구분하지만, 대괄호 대신 소괄호( )로 감싸거나 아예 감싸지 않고 생성한다.

ex) (값, 값, 값) / 값, 값, 값 -> '( )'생략 가능)

 

예제

순서 1. 튜플을 생성한다. (같은 데이터 타입)

순서 2. 튜플을 생성한다. (다른 데이터 타입)

순서 3. 튜플을 생성한다. ( ) 생략

t1 = (1,2,3,4,5,6)
t2 = ('abc', True, False, 10.2, 1, 2, 3)
t3 = 1,2,3,4,5

원소가 1개인 tuple은 값 뒤에 ' , '를 붙인다.

ex) (값, )

 

예제

순서 1. 튜플을 생성한다.

순서 2. 튜플을 생성한다. ( ) 생략

t4 = (30,)
t5 = 100,

 


Tuple 원소 조회

튜플의 원소를 조회할 때에는 인덱싱(indexing)과 슬라이싱(slicing)을 이용한다.

 

인덱싱(indexing)을 이용한 원소 조회

원소 조회

순서 1. t3에서 0번째와 1번째 값을 조회한다.

순서 2. t3에서 뒤에서 1번째와 3번째 값을 조회한다.

순서 3. t3에서 0번째 값을 100으로 변경한다.

print(t3[0], t3[1])
print(t3[-1], t3[-3])
t3[0] = 100

 

[실행결과]

1 2
5 3
error 발생 -> 튜플은 원소를 변경하는 것이 안된다.

 


슬라이싱(slicing)을 이용한 원소 조회

원소 조회

순서 1. 시작 idx 생략, 마지막 idx는 2이고, 간격은 default 값인 경우

순서 2. 시작 idx 1, 마지막 idx는 생략하고, 간격은 default 값인 경우

순서 3. 시작 idx와 마지막 idx는 생략하고, reverse

t3[:2]
t3[1:]
t3[::-1]

 

[실행결과]

(1, 2)
(2, 3, 4, 5)
(5, 4, 3, 2, 1)

 


Tuple 연산자

파이썬에서는 튜플끼리 더하거나 튜플에 숫자를 곱할 수 있다.

리스트와 같이 (+)로 합치고 (*)로 같은 Tuple을 n번 합치며, 연산 처리된 새로운 tuple을 만들어 반환한다.

 

in, not in 연산자는 어떤 값이 Tuple의 원소에 있는지 True/False로 반환한다.

 

예제

+ 연산자를 이용해 List 합치기

t7 = t1 + t2		# (1, 2, 3, 4, 5, 6, 'abc', True, False, 10.2, 1, 2, 3)

 

* 연산자를 이용해 같은 List를 N번 합치기

t8 = t3 * 3		# (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)

 

in, not in 연산자

순서 1. t8에 3이 있을까..?

순서 2. t8에 100이 있을까..?

순서 3. t8에 3이 있을까..?

순서 4. t8에 100이 있을까..?

3 in t8			# True
100 in t8		# False
3 not in t8		# False
100 not in t8		# True

 


Tuple 주요 메서드

메소드 설명
len(튜플) Tuple 의 원소 개수 조회
index(값) 값과 동일한 첫번째 원소가 몇 번째 index에 있는지 반환
count(값) Tuple 안에 매개변수로 전달한 값이 몇 개 있는지 반환
Tuple은 값을 변경하는 메소드는 없다. 

 


반응형