포스트

파이썬에서 switch문 대체하기

if-elif-else 구문 사용

파이썬에서는 switch문이 없기 때문에, 대부분의 경우 if-elif-else 구문을 사용하여 비슷한 로직을 구현합니다. 이는 다른 프로그래밍 언어에서 보통 switch로 처리되는 패턴을 파이썬에서도 쉽게 처리할 수 있게 해줍니다.

1
2
3
4
5
6
7
8
9
def switch_example(value):
    if value == 'A':
        return "Apple"
    elif value == 'B':
        return "Banana"
    elif value == 'C':
        return "Cherry"
    else:
        return "Unknown"

이 방법은 간단하고 직관적이며, 대부분의 상황에서 잘 작동합니다.

딕셔너리 매핑 활용

더 빠른 실행 속도가 필요한 경우, if-elif-else 구문 대신 딕셔너리(Dictionary)를 사용할 수 있습니다. 딕셔너리는 키와 값으로 데이터를 저장합니다. 딕셔너리를 사용하면 코드가 더 간결해지고 실행 속도도 빨라집니다.

1
2
3
4
5
6
def switch_dict(value):
    return {
        'A': "Apple",
        'B': "Banana",
        'C': "Cherry"
    }.get(value, "Unknown")

함수를 활용한 고급 매핑

좀 더 복잡한 로직이 필요한 경우, 딕셔너리에 함수를 저장하여 사용할 수 있습니다. 이 방법은 특히 함수의 로직이 복잡하거나 매개변수가 여러 개 필요할 때 유용합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def apple_func():
    return "Apple"

def banana_func():
    return "Banana"

def cherry_func():
    return "Cherry"

switch_func_dict = {
    'A': apple_func,
    'B': banana_func,
    'C': cherry_func
}

def switch_func_example(value):
    return switch_func_dict.get(value, lambda: "Unknown")()

이렇게 하면, switch문 없이도 파이썬에서 다양한 조건 분기를 효율적으로 처리할 수 있습니다. 각 방법은 자신의 장단점이 있으므로, 상황에 맞게 적절한 방법을 선택하면 됩니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.