---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-75-266ec228a7d8> in <module>
1 # immutable이기 때문에 바뀌지 않음
----> 2 temp[2] = "Cat"
TypeError: 'tuple' object does not support item assignment
1) Tuples을 사용하는 이유?
데이터 분석에서 접근하면, 특정 데이터가 변하지 않도록 방지하는 기법
프로그래밍적으로 Tuple이 List보다 연산 속도가 빠름
Dictionary도 문자열과 같은 immutable type을 요구
Tuples은 Packing & Unpacking 기법이 강력함(일종의 여행용 가방)
1 2
t = ("foo", "bar", "hey", "yeah") t
('foo', 'bar', 'hey', 'yeah')
Unpacking: 각각의 element를 다른 이름으로 저장해보기
1 2
(s1, s2, s3, s4) = t s2
'bar'
이때, 반드시 좌우 값이 동일하게 작동해야 함
만약 좌우 값이 일치하지 않으면 에러가 발생
1 2
# 코드를 통해 확인 (a1, a2, a3) = t
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-89-76bce831b49d> in <module>
----> 1 (a1, a2, a3) = t
ValueError: too many values to unpack (expected 3)
2) swap
스왑은 맞바꾸다의 뜻
Tuple에서는 매우 쉽게 swap이 가능
1 2 3 4 5 6
a1 = "chloe" v1 = "loves" a2 = "evan"
temp = a1, v1, a2 # Tuple 형태로 표시됨 temp
('chloe', 'loves', 'evan')
1 2 3
a1, a2 = a2, a1 temp = a1, v1, a2 # Tuple 형태로 표시 temp
('evan', 'loves', 'chloe')
Dictionary
영어 원뜻 그대로 사전이라는 개념
Dictionary는 {}로 표현
List와 유사한 부분이 많음
Mutable이라는 뜻을 포함
다른 Dictionary, List 등을 포함할 수 있음
List와의 차이
List에서 각 원소에 접근하기 위해 index를 사용
Dictionary에서는 각 원소에 접근하기 위해 key를 사용
Rename할 때 자주 사용
1) Dictionary 정의
Dictionary의 기본적인 문법
1 2 3 4 5 6 7 8
d = { <키>: <값>, <키>: <값>, . . . <키>: <값>, }
1 2 3 4 5 6 7 8
# 국내 야구팀을 Dictionary 형태로 만들기 kbo = { "인천" : "SK", "수원" : "KT", "광주" : "기아" }
print(kbo)
{'인천': 'SK', '수원': 'KT', '광주': '기아'}
2) Dictionary 접근법
indexing이 아닌 key 값으로 접근 가능
1
print(kbo[1]) # index로 추출할 수 없음
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-81-8f1aa6e7486b> in <module>
----> 1 print(kbo[1]) # index로 추출할 수 없음
KeyError: 1
1 2
# Dictionary는 key 값을 넣어줘야 호출할 수 있음 print(kbo["수원"])