본문 바로가기

교육 노트/파이썬 강의

[파이썬 때려잡기] Python 강의 7 - 튜플 (tuple)

2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 1 - Hello World!

2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 2 - 변수와 자료형, 연산자

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 3 - 파이썬의 자료구조, 리스트

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 4 - 파이썬의 스트링

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 5 - 스트링과 리스트 처리-1

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 6 - 스트링과 리스트 처리-2


튜플은 리스트와 유사하나 immutable(불변) 이다

string처럼 중간의 값을 바꿀수 있을 수 없다.


리스트는 [] 로 만들었지만 튜플은 () 로 만든다


1. 튜플

x = ()
print(x)

x = (1,)
print(x)

x = (1,2)
print(x)

x = (1,2,(3,4))
print(x)

출력

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


요소가 1개라도 뒤에 , 를 붙여주어야한다.

이유는 그냥 (1)을 해버리면 그냥 1이 된다. 아마 숫자1에  (5 + 4)*2 이런거에 사용하는 ()가 사용됫다고 추정된다

그외 인덱싱, 슬라이싱, 곱하기, 더하기 등은 리스트나 문자열과 동일



2. 튜플의 튜플

x = (1,2,(3,4))
print (x[2][0])

리스트처럼 튜플에 튜플을 넣을수있다.

인덱싱을 리스트와 동일



3. 불변


x = (1,2,3,4)
x[3] = 0
print (x)


Traceback (most recent call last):
File "c:\Users\--------\Desktop\교육.py", line 2, in <module>
x[3] = 0
TypeError: 'tuple' object does not support item assignment

튜플의 아이템은 변경할수없다. 즉 불변이다.



4. id함수

파이썬에서는 id라는 함수를 제공한다

변수마다 id를 가지고 있는데

고유의 id를 통하여 id는 해당 변수의 값이아니라 실제 같은 변수인지를 확인할수있다.



x = [1,2,3,4]
print(id(x))
x[0] = 5
print(id(x))


2033295580360
2033295580360

x리스트안에 값이 바뀌었어도 x가 의미하는 리스트는 같다.

따라서 같은 id를 가진다



x = [1,2,3,4]
print(id(x[0]))
x[0] = 5
print(id(x[0]))


1812229152
1812229280


그러나 요소는 바뀌었으므로 바뀌기 전과 후의 x[0]은 다른 id를 가진다.




5. 튜플안의 리스트

위에서 본 결과로 볼때


x = (1,2,[3,4])
x[2][0] = 5
print (x)


(1, 2, [5, 4])

튜플안에 있는 리스트의 요소는 변경가능하다. 그러나 리스트 자체를 바꾸는것은 불가능하다






728x90