Better Way 29

장재성·2021년 7월 4일

Better Way

목록 보기
1/4

대입식을 사용해 컴프리헨션 안에서 반복 작업을 피하라

  1. <예제>
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를 이용해 가독성을 해치지 않으면서 코드를 간단하게 줄일 수 있다.
  1. Variable leaking(변수 누출)
a = [(b := count //2) for count in stock()]
print(f'{a}의 마지막 원소는 {b}')
  • comprehension 내부 변수인 'b' 가 외부에서도 그 값을 그대로 가지므로 사용에 유의해야한다.
profile
초심자

1개의 댓글

comment-user-thumbnail
2021년 7월 4일

책 볼 때는 대충 넘겼는데, 변수 누출이라는 새로운 정보 알아갑니다~

답글 달기