Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 Switch Case 구현하기 – 딕셔너리를 활용한 대체 방법

이 튜토리얼에서는 Python에서 switch case처럼 동작하는 프로그램을 작성하는 방법을 알아보겠습니다.

Python에는 왜 switch 문이 없을까?

C, C++, Java 등 많은 프로그래밍 언어에는 조건 분기를 위한 switch 문이 기본으로 제공됩니다. 하지만 Python은 설계 철학상 이러한 문법을 포함하지 않았습니다.

다행히 Python에서는 딕셔너리(dict) 자료구조를 활용하면 switch case와 동일한 기능을 깔끔하게 구현할 수 있습니다. 지금부터 실제 코드를 통해 살펴보겠습니다.

딕셔너리로 구현하는 switch case

아래 예제는 숫자 키에 요일 이름을 매핑한 딕셔너리를 사용합니다. 딕셔너리의 get() 메서드를 사용하면 키가 존재할 때는 해당 값을 반환하고, 존재하지 않을 때는 지정한 기본값(default)을 반환합니다. 이 기본값이 바로 switch 문의 default 키워드 역할을 합니다.

# 키와 값으로 구성된 딕셔너리
days = {
    0: 'Sunday',
    1: 'Monday',
    2: 'Tuesday',
    3: 'Wednesday',
    4: 'Thursday',
    5: 'Friday',
    6: 'Saturday'
}

# get() 메서드로 요일에 접근합니다
# 올바른 키를 전달하면 해당하는 값을 반환하고
# 딕셔너리에 없는 키를 전달하면 기본값을 반환합니다
print(days.get(0, 'Bad day'))
print(days.get(10, 'Bad day'))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Sunday
Bad day

0은 딕셔너리에 존재하는 키이므로 Sunday가 출력되고, 10은 존재하지 않는 키이므로 기본값인 Bad day가 출력되는 것을 확인할 수 있습니다.

값 자리에는 문자열뿐 아니라 함수, 람다(lambda) 식 등 어떤 객체든 넣을 수 있습니다. 따라서 단순 값 매핑을 넘어 각 case마다 다른 동작을 실행하도록 확장할 수도 있습니다.

참고: Python 3.10의 match-case 문

Python 3.10부터는 match-case 문이 정식 도입되어 다른 언어의 switch 문과 유사한 패턴 매칭 문법을 사용할 수 있습니다. 하지만 하위 버전 호환성이나 단순한 값 매핑의 경우에는 여전히 딕셔너리 방식이 간결하고 효율적인 선택입니다.

마무리

지금까지 딕셔너리의 get() 메서드를 활용해 Python에서 switch case를 대체하는 방법을 살펴보았습니다. 핵심은 키-값 매핑기본값 처리 두 가지입니다. 튜토리얼 내용 중 궁금한 점이 있다면 댓글로 남겨주세요.