본문 바로가기
인터페이스 개발/Python

Python - 리스트와 튜플[튜플] - 불변 자료 집합, 튜플로 가능한 일

by cooluk 2020. 7. 25.

Chap.9 리스트와 튜플[튜플] - 불변 자료 집합, 튜플로 가능한 일

 

튜플

불변 자료 집합, 튜플로 가능한 일

 

불변 자료 집합

  • (값, ... )
  • 값, [...]
  • 추가/수정/삭제 불가
  • 읽기만 가능 --> 리스트보다 속도가 빠름

score = 88, 95, 70, 100, 99
print(score)
score = 88,         # score=(88,)
print(score)
score = 88          # score=(88) 단순 우선 순위, 튜플 X
print(score)

결과

(88, 95, 70, 100, 99)
(88,)
88

한 개짜리 튜플 만들 때 반드시 , 를 넣어주어야한다.

 

 

튜플로 가능한 일

index읽기, 연결

tu = 1, 2, 3, 4, 5
print(tu[3])
print(tu[1:4])
print(tu + (6, 7))
print(tu * 2)


# tu[1] = 100 # 불가능
# del tu[1] # 불가능

결과

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

 

Unpack

names = "이순신", "김유신", "강감찬"  # 튜플이다.
lee, kim, kang = names  # unpack (순서대로 대입)
print(lee)
print(kim)
print(kang)

결과

이순신
김유신
강감찬

 

Swap

a, b = 12, 34
print(a, b)
a, b = b, a
print(a, b)

결과

12 34
34 12

 

Return

import time

def gettime():
    now = time.localtime()
    return now.tm_hour, now.tm_min

result = gettime()  # result가 튜플로 받음
print("지금은 %d시 %d분 입니다."%(result[0], result[1]))  # 가독성이 좋지 않다.

hour, minute = gettime()  # unpack 이용
print("지금은 %d시 %d분 입니다."%(hour, minute))  # 가독성이 좋다.

결과

지금은 1445분 입니다.
지금은 14시 45분 입니다.

 
 
튜플 언제 이용? 읽기만 할 때, 복수개의 정보를 리턴하고 개별로 정보를 받을 때

 

몫과 나머지 얻기

d, m = divmod(7, 3)
print("몫", d)
print("나머지", m)

결과

몫 2
나머지 1

 

Type 변환 (list↔tuple)

score = [88, 95, 70, 100, 99]
tu = tuple(score)
print(tu)
li = list(tu)
li[0] = 100
print(li)

결과

(88, 95, 70, 100, 99)
[100, 95, 70, 100, 99]

댓글