사전 타입
- 오브젝트를 키와 값으로 저장
- {키:값} 또는 파이썬 내장 함수인 dict() 함수를 사용
- 순서 없는 데이터 타입(인덱싱 및 슬라이싱은 불가능)
- 변경 가능한(mutable) 데이터 타입
사용 예시
myD = {10:"aa", 20:"bb", 30:"cc"}
print(myD)
print(type(myD))
#결과
{10: 'aa', 20: 'bb', 30: 'cc'}
<class 'dict'>
위의 예제 결과를 보면 사전 객체인 것을 확인할 수 있다.
myD = {10:"aa", 20:"bb", 30:"cc"}
print(myD)
print(type(myD))
print(myD[0])
#결과
print(myD[0])
KeyError: 0
또한 순서 없는 데이터 타입이기 때문에 인덱스가 불가능하다. 대신 key를 넣을 수 있다.
myD = {10:"aa", 20:"bb", 30:"cc"}
print(myD)
print(type(myD))
print(myD[20])
print(myD.get(20))
print(myD.get(40, "zz"))
#결과
{10: 'aa', 20: 'bb', 30: 'cc'}
<class 'dict'>
bb
bb
zz
그리고 get이라는 멤버 함수가 있기 때문에 동일하게 key 값을 얻을 수 있다. 또한 get 함수는 default 값을 줄 수도 있다. 이 역할은, sample code와 같이 40이라는 key가 없으면 “zz”를 default로 출력해준다.
myD = {10:"aa", 20:"bb", 30:"cc"}
myD[10] = "AA"
print(myD)
#결과
{10: 'aa', 20: 'bb', 30: 'cc'}
<class 'dict'>
bb
bb
zz
사전 타입은 mutable이기 때문에 수정 가능한 특징이 있으며 예제와 같이 key 10의 값을 “AA”로 수정한 결과 바뀌는 것을 확인 가능하다. 한 가지 주의할 내용은 key가 중복되지 않는다는 점이다.
myD = {10:"aa", 20:"bb", 30:"cc", 20:"BB"}
myD[10] = "AA"
print(myD)
#결과
{10: 'AA', 20: 'BB', 30: 'cc'}
Key값 20을 중복시켰을 때 overwrite 되는 것을 확인할 수 있다. 따라서 반드시 key는 중복되지 않고 사용하면 안 된다.
myD = {10:"aa", 20:"bb", 30:"cc"}
myD[10] = "AA"
myD[40] = 'dd'
myD[100] = 'ff'
print(myD)
#결과
{10: 'AA', 20: 'bb', 30: 'cc', 40: 'dd', 100: 'ff'}
사전 타입의 특징은 key가 있으면 수정되며 없으면 추가된다. 예제를 통해 40과 100의 key가 추가된 것을 확인할 수 있다.
myD = {10:"aa", 20:"bb", 30:"cc"}
print(myD.pop(20))
print(myD)
#결과
bb
{10: 'aa', 30: 'cc'}
다음은 삭제 함수이다. pop을 사용할 수 있는데 return도 해준다. 예제의 결과처럼, pop을 통해 key 20의 값을 return하고 사전 객체에서 해당 값이 삭제되어 있음을 확인할 수 있다.
myD = {10:"aa", 20:"bb", 30:"cc"}
del(myD[20])
print(myD)
#결과
{10: 'aa', 30: 'cc'}
추가로, python 내장 함수인 del을 사용할 수도 있다.
myD = {10:"aa", 20:"bb", 30:"cc"}
print(myD.keys())
print(myD.values())
print(myD.items())
test = [10, (10, 'aa')]
print(test[0])
print(test[1])
print(test[1][0])
#결과
dict_keys([10, 20, 30])
dict_values(['aa', 'bb', 'cc'])
dict_items([(10, 'aa'), (20, 'bb'), (30, 'cc')])
10
(10, 'aa')
10
Keys 함수는 dictionary의 key 요소만 출력해주는 함수이다.
Values 함수는 key에 연결되는 data값들을 출력해주는 함수이다.
Items 함수는 list의 tuple로서 key 값이 구성되는 함수이다.
test처럼 정수 객체와 tuple 객체를 list로 만들었다고 하였을 때, test[0]은 정수 출력, test[1]은 tuple 출력을 확인할 수 있다. 그리고 tuple 객체의 index를 지정함으로써 각 요소를 출력 가능하다.
'언어 > Python' 카테고리의 다른 글
[Python] Python(파이썬) 연산자 개요 및 산술 연산자 (0) | 2020.03.28 |
---|---|
[Python] Python(파이썬) 시퀀스 데이터 타입 (4) - 세트(Set) (0) | 2020.03.27 |
[Python] Python(파이썬) 시퀀스 데이터 타입 (3) - 튜플(tuple) (0) | 2020.03.25 |
[Python] Python(파이썬) 시퀀스 데이터 타입 (2) - 리스트(list) (0) | 2020.03.21 |
[Python] Python(파이썬) 시퀀스 데이터 타입 (1) - 리스트(list) (0) | 2020.03.18 |