출처 : 윤성우의 열혈 파이썬 : 중급
14. dict의 루핑 기술과 컴프리헨션
d = dict(a = 1, b = 2, c = 3)
for k in d:
print(d[k], end = ', ') # 1, 2, 3
- dict.keys() : 딕셔너리의 키들만 참조하고자 할 때
- dict.values() : 딕셔너리의 값들만 참조하고자 할 때
- dict.items() : 딕셔너리의 키와 값을 튜플 형태로 참조하고자 할 때
위의 세 메소드가 반환하는 것을 가리켜 view 객체라고 한다
view 객체
d = dict(a = 1, b = 2, c = 3)
for k in d.keys():
print(k, end = ', ') # a, b, c
for v in d.values():
print(v, end = ', ') # 1, 2, 3
for kv in d.items():
print(kv, end = ', ') # ('a', 1), ('b', 2), ('c', 3)
for k, v in d.itmes():
print(, v, sep = ', ') # a, 1\n b, 2\n c, 3
view가 바라보는 현재 상태
d = dict(a = 1, b = 2, c = 3)
vo = d.items()
for kv in vo:
print(kv, end = ' ') # ('a', 1), ('b', 2), ('c', 3)
d['a'] += 3
d['c'] -= 2
for kv in vo:
print(kv, end = ' ') # ('a', 4), ('b', 2), ('c', 1)
view 객체는 단순히 키 또는 값을 얻어오는데 사용될 뿐만 아니라 현재 딕셔너리의 상태를 그대로 반영한다는 특징이 있다
dict 컴프리헨션
d1 = dict(a = 1, b = 2, c = 3)
d2 = {k : v*2 for k, v in d1.items()}
d3 = {k : v*2 for k, v in d2.items()}
d2 = {k : v for k, v in d1.items() if v % 2}
ds = ['a', 'b', 'c', 'd']
vs = [1, 2, 3, 4]
d = {k: v for k, v in zip(ks, vs)}
d2 = {k: v for k, v in zip(ks, vs) if v % 2}
'프로그래머 > Python' 카테고리의 다른 글
[윤성우의 열혈 파이썬 중급편] 16. dict & defaultdict (0) | 2020.12.24 |
---|---|
[윤성우의 열혈 파이썬 중급편] 15. 함수 호출과 매개변수 선언에 있어서 *와 **의 사용 규칙 (0) | 2020.12.24 |
[윤성우의 열혈 파이썬 중급편] 13. dict의 생성과 zip (0) | 2020.12.24 |
[윤성우의 열혈 파이썬 중급편] 12. named tuple (0) | 2020.12.15 |
[윤성우의 열혈 파이썬 중급편] 11. 튜플의 패킹과 언패킹 (0) | 2020.12.15 |