⑯ *args + zip() + map()
print((lambda *a:list(zip(a,map(lambda x:x*2,a))))(1,2,3))
정답 및 해설
① *args
↓
(1,2,3)
② map()
↓
2
4
6
③ zip()
↓
(1,2)
(2,4)
(3,6)
zip()과 map()을 함께 사용하는 대표 패턴이다.
⑰ **kwargs + items() + enumerate()
print((lambda **k:list(enumerate(k.items(),1)))(A=10,B=20))
정답 및 해설
[(1,('A',10)),
(2,('B',20))]
items()
↓
('A',10)
('B',20)
↓
enumerate(...,1)
↓
번호 추가
(번호,(key,value))
형태를 반드시 기억하자.
⑱ enumerate() + zip() + lambda
print(list(map(lambda x:x[0]+sum(x[1]),
enumerate(zip((1,2),(10,20))))))
정답 및 해설
enumerate()
↓
(0,(1,10))
(1,(2,20))
↓
sum((1,10))
↓
11
↓
0+11=11
1+22=23
sum()은 튜플에도 사용할 수 있다.
⑲ *args + enumerate()
print((lambda *a:dict(enumerate(a,1)))(5,6,7))
정답 및 해설
enumerate(...,1)
↓
(1,5)
(2,6)
(3,7)
↓
dict()
dict(enumerate())
형태는 번호 매기기에 매우 유용하다.
⑳ **kwargs + items() + map()
print((lambda **k:list(map(lambda x:x[0],k.items())))(A=1,B=2,C=3))
정답 및 해설
items()
↓
('A',1)
↓
x[0]
↓
'A'
동일하게
B
C
추출
key만 추출하는 다른 방법은
list(k.keys())
이다.