Study/Python

[Python] ':=' 연산자(Walrus Operator) 이해하기

Super-Son 2025. 4. 7. 20:29

':=' 연산자란?

Python 3.8부터 새로 추가된 := 연산자는 할당 표현식(Assignment Expression)이라고 불립니다. 이 연산자를 사용하면 변수를 선언하면서 동시에 값을 검사하거나 사용할 수 있는 문장을 작성할 수 있습니다.

기존에는 값을 변수에 할당하고 그 값을 조건문이나 반복문에서 따로 사용하는 방식이었지만, :=를 사용하면 더 간결하게 코드를 작성할 수 있습니다.

이 연산자는 '바다코끼리 연산자(Walrus Operator)'라고도 불리며, 모양이 바다코끼리 얼굴처럼 생겼다고 해서 붙여진 이름입니다.

 

기본 사용법

if (n := len("Hello")) > 3:
    print(f"문자열 길이는 {n}입니다.")

설명:

  • len("Hello")의 결과를 바로 n에 저장하면서,
  • 그 값을 조건식에서 > 3인지 확인하고,
  • 조건이 참이면 print()를 실행합니다.

len() 결과를 따로 저장하지 않아도 바로 조건에 활용할 수 있어서 코드가 깔끔해집니다.

 

반복문에서 유용한 예시

# 사용자 입력을 계속 받되, 'exit'가 입력되면 종료
while (text := input("입력하세요 (exit 입력 시 종료): ")) != "exit":
    print(f"입력한 내용: {text}")

설명:

  • input()으로 받은 값을 바로 text에 저장하면서,
  • 동시에 그 값이 "exit"인지 비교해 반복 여부를 판단합니다.
  • 중복 코드를 줄이고, 입력 값을 별도로 다시 호출하지 않아도 됩니다.
 

리스트 컴프리헨션에서의 활용

results = [y for x in range(10) if (y := x * 2) > 10]
print(results)

설명:

  • x * 2 계산 결과를 y에 저장하면서,
  • 그 결과가 10보다 큰 경우만 리스트에 추가됩니다.
  • 불필요한 중간 변수를 따로 만들지 않아도 돼서 효율적입니다.
 

주의할 점

  • :=표현식(expression) 안에서만 사용할 수 있고, 문장(statement)으로는 쓸 수 없습니다.
  • Python 3.8 이상에서만 사용할 수 있으므로, 버전을 확인하고 사용해야 합니다.
  • 너무 자주 사용하면 코드 가독성이 떨어질 수 있습니다.

 


 

:= 연산자는 처음엔 다소 낯설 수 있지만, 익숙해지면 더 짧고 읽기 쉬운 코드를 작성할 수 있게 도와줍니다. 특히 조건문, 반복문, 리스트 컴프리헨션에서 유용하게 활용할 수 있으니, Python을 자주 다룬다면 꼭 익혀두면 좋은 문법입니다.