Python 한 줄 코딩 출력 결과 예측 (6~10)

⑥ **kwargs + items()

print((lambda **k:list(k.items()))(A=10,B=20))
정답 및 해설
[('A',10),
 ('B',20)]
**kwargs ↓ dictionary 생성 ↓ items() ↓ (key,value) 튜플 목록
items() ↓ dict_items 객체 list()로 변환하였다.

⑦ items() + map()

print(list(map(lambda x:x[::-1],{'A':1,'B':2}.items())))
정답 및 해설
[(1,'A'),
 (2,'B')]
items() ↓ ('A',1) ↓ [::-1] ↓ (1,'A')
[::-1] 튜플도 뒤집을 수 있다.

⑧ enumerate() + items()

print(list(enumerate({'A':10,'B':20}.items(),1)))
정답 및 해설
[(1,('A',10)),
 (2,('B',20))]
items() ↓ ('A',10) ↓ enumerate(...,1) ↓ 번호 추가
★★★★ 시험에서 매우 자주 나온다.

⑨ zip()

print(dict(zip("ABC",(100,200,300))))
정답 및 해설
{
'A':100,
'B':200,
'C':300
}
zip() ↓ ('A',100) ('B',200) ('C',300) ↓ dict()
dict(zip()) 패턴은 가장 많이 사용하는 형태이다.

⑩ **kwargs + values()

print((lambda **k:sum(k.values()))(x=5,y=10,z=15))
정답 및 해설
30
values() ↓ 5 10 15 ↓ sum() ↓ 30
values() keys() items() 차이를 반드시 구분하자.