Python -dict
💡
dict(키를 이용하여 값을 저장하는 자료형)
정수형 인덱스가 아닌 키로 값을 저장하기 때문에 저장된 순서는 무의미
key는 중복 불가(immutable), value(mutable)는 중복 가능
d = dict()
print(d, type(d))
결과
{} <class 'dict'>
d ={}
print(d, type(d))
결과
{} <class 'dict'>
d= {"a": 1, "b": 2,"c":3}
print(d)
d['a'] =10
print(d)
d['d'] =4
print(d)
#print(d['k']) #없는 key는 에러
print(d.get('k', 100)) #없는 경우 default 적용
결과:
{'a': 1, 'b': 2, 'c': 3}
{'a': 10, 'b': 2, 'c': 3}
{'a': 10, 'b': 2, 'c': 3, 'd': 4}
dict.keys() / dict.values()
print(d.keys())
# value 가져오기
print(d.values())
tmp = list(d.values())
print(tmp, type(tmp))
tmp =[i for i in d.values()]
print(tmp, type(tmp))
print(d.items())
[결과]
dict_keys(['a', 'b', 'c', 'd'])
dict_values([10, 2, 3, 4])
[10, 2, 3, 4] <class 'list'>
dict_items([('a', 10), ('b', 2), ('c', 3), ('d', 4)])
#방법 1
for k in d:
print(k, d[k], sep="," , end="/")
#방법 2
for k in d.keys():
print(k, d[k], sep="," , end="/")
for k in d.values():
print(k, sep="," , end="/")
print()
결과:
a,10/b,2/c,3/d,4/
10/2/3/4/
setdefault : 추가만 가능
d.setdefault('e') # value 없이 넣을 경우, 값은 None
print(d)
d.setdefault('f',5) # value 없이 넣을 경우, 값은 None
print(d)
결과:
{'a': 10, 'b': 2, 'c': 3, 'd': 4, 'e': None}
{'a': 10, 'b': 2, 'c': 3, 'd': 4, 'e': None, 'f': 5}
update : 추가 수정 가능
d.update(a=1)
d.update(a=1, f=100)
d.update(a='one', g='6')
print(d)
print(d.pop('z',100)) # 기본값 설정으로 값이 없어도 에러가 발생하지 않음
print(d.popitem()) #python 3.6 이상 에서는 맨끝, 이하 에서는 임의로 출력
결과:
{'a': 10, 'b': 2, 'c': 3, 'd': 4, 'e': None, 'f': 5}
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': None, 'f': 5}
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': None, 'f': 100}
{'a': 'one', 'b': 2, 'c': 3, 'd': 4, 'e': None, 'f': 100, 'g': '6'}
100 # 기본값 설정으로 값이 없어도 에러가 발생하지 않음
('g', '6') #python 3.6 이상 에서는 맨끝, 이하 에서는 임의로 출력