Python Walrus Operator :=

Moon·2023년 2월 6일
1
post-custom-banner

파이썬 : 귀여운 " := " 바다코끼리를 드리겠습니다.


프로그래머스 문제를 풀다 귀여운 연산자를 만났다.

:=

너는 대체 뭐니..? 파이썬 공식 문서를 찾아보았다.
This article explains the new features in Python 3.8, compared to 3.7. Python 3.8 was released on October 14, 2019. For full details, see the changelog.

2019년 10월에 배포된 공식문서에 따르면 파이썬3.8부터 바다코끼리 연산자(walrus operator)가 추가된 듯 하다.

더 큰 표현식의 일부로 변수에 값을 대입하는 새로운 문법 := 이 있습니다. 바다코끼리의 눈과 엄니를 닮아서 “바다코끼리 연산자(the walrus operator)”라고 친근하게 알려져 있습니다.

이 예에서, 대입 표현식은 len()을 두 번 호출하지 않도록 합니다:

if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

처음에는 잘 이해가 가지 않아서, 앞서 언급한 프로그래머스 문제(https://school.programmers.co.kr/learn/courses/30/lessons/120883)를 바다코끼리 연산자를 사용하지 않고 풀어본 후, 이를 비교해보았다!

def solution(id_pw, db):
    db_dict = dict(db)
    try_id, try_pwd = id_pw
    
    db_pw = db_dict.get(try_id)
    
    if db_pw :
        return "login" if db_pw == try_pwd else "wrong pw"

    return "fail"

이번에는 바다코끼리 연산자(:=)를 사용하였다!

def solution(id_pw, db):
    db_dict = dict(db)
    try_id, try_pwd = id_pw

    if db_pw := db_dict.get(try_id):
        return "login" if db_pw == try_pwd else "wrong pw"
    return "fail"

바다코끼리 연산자(:=)를 사용하면, 굳이 그 전에 선언을 해주고 한 번 더 사용할 필요가 없어진다!!

profile
안녕하세요. Moon입니다!
post-custom-banner

0개의 댓글