PHpullh
학습 라이브러리/Python/Walrus 연산자 & 구조적 패턴

PYTHON · 기초 문법

Walrus 연산자 & 구조적 패턴

Python 3.8+ 대입 표현식(:=)으로 중복 계산을 제거합니다.

기초 문법중급walrus:=대입표현식Python 3.8

핵심 설명

Python 3.8+ 대입 표현식(:=)으로 중복 계산을 제거합니다.

Python code

import re

# walrus := — 할당과 평가를 동시에
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# while 루프에서 유용
numbers = iter(data)
while (n := next(numbers, None)) is not None:
    if n % 2 == 0:
        print(f"짝수: {n}")

# 정규식 매치 결과 재사용
text = "Python 3.12 출시"
if m := re.search(r"Python (\d+\.\d+)", text):
    print(f"버전: {m.group(1)}")   # 3.12

# 컴프리헨션에서 중복 계산 제거
def heavy(x): return x * x

# 나쁜 예: heavy() 두 번 호출
results_bad = [heavy(x) for x in range(10) if heavy(x) > 25]

# 좋은 예: walrus로 한 번만 호출
results = [y for x in range(10) if (y := heavy(x)) > 25]
print(results)  # [36, 49, 64, 81]

학습 팁

:=는 가독성이 중요한 코드에서는 주의해서 사용하세요. 남용하면 코드를 읽기 어렵게 만들 수 있습니다.

주의할 점

Walrus 연산자로 할당된 변수는 컴프리헨션 바깥 스코프에도 영향을 줍니다. 의도치 않은 변수 누출에 주의하세요.

자주 묻는 질문

Walrus 연산자 & 구조적 패턴란 무엇인가요?

Python 3.8+ 대입 표현식( := )으로 중복 계산을 제거합니다.

Walrus 연산자 & 구조적 패턴 학습 시 주의할 점은 무엇인가요?

Walrus 연산자로 할당된 변수는 컴프리헨션 바깥 스코프에도 영향을 줍니다. 의도치 않은 변수 누출에 주의하세요.