20241126 파이썬 tuple 자료형, deque()

튜플 자료형

()로 둘러싸는 자료형 튜플. (ie. 리스트는 [])
리스트는 요소값의 생성, 삭제, 수정이 가능하지만, 튜플은 요쇼값을 바꿀 수 없다는 차이점을 가진다.

생성

t1 = ()
t2 = (1,)
t3 = (1, 2, 3)
t4 = 1, 2, 'a', 'b'
t5 = ('a', 'b', ('ab', 'cd'))
t6 = 1, 2, (1,2)


  • 튜플은 1개의 요소만 가질 때는 요소 뒤에 반드시 쉼표를 붙여야 한다.
t1 = (1,)

print(t1)

#### 출력
## (1,)


  • 튜플은 소괄호 생략이 가능하다.

출력해보면 자동으로 소괄호가 붙어있는 형태가 출력된다.

t1 = 1, 2, 'a', 'b'
t2 = 1, 2, (1,2)

print(t1)
print(t2)

#### 출력
## (1, 2, 'a', 'b')
## (1, 2, (1, 2))


튜플은 리스트와 비슷하지만 요소값 변화가 불가능하다는 차이점을 가지기 때문에, 프로그램이 실행되는 동안 요소값이 변하지 않기를 바란다면 튜플 자료형을 사용하면 된다. 실제 프로그램에서는 값이 변하는 형태의 변수가 훨씬 많기 때문에 튜플 보다는 리스트를 더 많이 사용한다고 한다.

활용

튜플은 리스트와 같이 인덱싱, 슬라이싱, 길이 구하기 모두 가능하다.

  • 인덱싱
t1 = (1, 2, 'a', 'b')

print(t1[0])
print(t1[2])

#### 출력
## 1
## a


  • 슬라이싱
t1 = (1, 2, 'a', 'b')

print(t1[1:])

#### 출력
## (2, 'a', 'b')


  • 길이 구하기
t1 = (1, 2, 'a', 'b')

print(len(t1))

#### 출력
## 4


이외에 튜플과 튜플을 더해 새로운 튜플을 만들 수 있고, 곱하기를 사용해 튜플을 반복할 수 있다.
이러한 활용은 튜플은 값을 변경할 수 없기 때문에 새로운 튜플을 만드는 방식으로 사용된다.

  • 튜플과 튜플 더하기
t1 = (1, 2)
t2 = ('a', 'b')

t3 = t1 + t2
print(t3)

#### 출력
## (1, 2, 'a', 'b')


  • 튜플 반복하기
t1 = (1, 2)

t2 = t1 * 3
print(t2)

#### 출력
## (1, 2, 1, 2, 1, 2)



에러 발생

튜플의 요소값은 한번 정하면 지우거나 변경할 수 없다. 따라서 요소값을 삭제하려하거나 변경하려하면 에러가 발생한다.

  • 튜플 요소는 del을 사용해 삭제 할 수 없다.
t1 = (1, 2, 'a', 'b')

del t1[0]

---
TypeError: 'tuple' object doesn't support item deletion


  • 튜플 요소는 변경할 수 없다.
t1 = (1, 2, 'a', 'b')

t1[0] = 5

---
TypeError: 'tuple' object does not support item assignment


이외에도 튜플은 요소값을 변경할 수 없기 때문에 sort, insert, remove, pop 과 같은 내장함수가 없다.




deque()

파이썬에서는 선입선출 방식인 큐 자료구조를 deque 라이브러리를 사용해 구현할 수 있다.

deque 라이브러리collections로부터 import한 뒤 deque()로 생성하면 된다.

from collections import deque

queue = deque()



Categories:

Updated:

Leave a comment