대입식을 사용해 컴프리헨션 안에서 반복 작업을 피하라
- <예제>
for name in order:
c = stock.get(name, 0)
b = get_b(c, 8)
if b:
result[name] = b
- 이를 comprehension 형태로 변환하면
a = {name: get_b(stock.get(name, 0), 8)
for name in order
if get_b(stock.get(name, 0), 8)}
a = {name: b for name in order
if (b:=get_b(stock.get(name, 0), 8))}
- 이처럼 comprehension과 walrus를 이용해 가독성을 해치지 않으면서 코드를 간단하게 줄일 수 있다.
- Variable leaking(변수 누출)
a = [(b := count //2) for count in stock()]
print(f'{a}의 마지막 원소는 {b}')
- comprehension 내부 변수인 'b' 가 외부에서도 그 값을 그대로 가지므로 사용에 유의해야한다.
책 볼 때는 대충 넘겼는데, 변수 누출이라는 새로운 정보 알아갑니다~