파이썬의 조건문에는 C언어의 switch-case문이 없다. 대체할 수 있는 방법은 두 가지이다.
(1) 조건문 if-elif-else문 사용
(2) 딕셔너리(dictionary)를 이용
1. 조건문 if-elif-else문 사용
(생략)
2. 딕셔너리(dictionary)를 이용
딕셔너리는 키로 색인되는 객체들을 담는 연관 배열 혹은 해시테이블이다. 아래와 같이 값들을 중괄호로 둘러싸서 딕셔너리를 생성한다.
stock = { "name" : "GOOG", "shares" : 100, "price" : 490.10 }
딕셔너리의 요소에 접근하려면 키 색인 연산자를 다음과 같이 사용한다.
name = stock["name"]
value = stock["shares"] * stock["price"]
객체의 추가 및 수정은 다음과 같이 수행한다.
stock["share"] = 75 # 객체 수정
stock["date"] = "June 7, 2007"
딕셔너리의 키는 주로 문자열을 사용하지만, 숫자나 튜플 같은 다른 파이썬 객체도 키로 사용될 수 있다. 다만 리스트나 딕셔너리 같이 그 내용이 바뀔 수 있는 객체는 키로 사용할 수 없다. 출처: <파이썬 완벽 가이드, 인사이트>
딕셔너리의 요소에 접근하는 방법이 switch문과 유사하여 이를 이용하면 간단한 값을 리턴 받는 경우에는 사용이 가능하다.
{1: "First", 2: "Second", 3: "Third"}[number]
위 코드에서 number가 1이면 "First"가 2이면 "Second", 3이면 "Third"가 반환된다.
이렇게 간단한 경우에는 좋지만 각 조건마다 여러 줄의 코드가 수행되어야 하는 경우라면 if-elif-else문이 타당하다. 적어도 난 그렇게 생각한다.
검색해보니 아래와 같이 딕셔너리 객체에 람다식(lambda)을 사용해서 switch의 case문에서 여러 줄의 코드가 수행될 수 있도록 한 경우도 있었다. 머리 좋네.
링크: <https://codingair.wordpress.com/2014/02/11/use-python-to-do-switch-case/>
2017년 12월 7일 목요일
피드 구독하기:
댓글 (Atom)
람다 표현식 (Lambda expression)
람다 표현식(Lambda expression) 람다 표현식으로 함수를 정의하고, 이를 변수에 할당하여 변수를 함수처럼 사용한다. (1) 람다 표현식 lambda <매개변수> : 수식 ※ 람다식을 실행하...
-
데이터 과학자가 알아야 할 5가지 클러스터링 알고리즘 February 26,2018 클러스터링은 데이터 포인트의 그룹화와 관련된 머신러닝 기술입니다. 데이터 포인트 집합이 주어지면 클러...
-
Speech Processing for Machine Learning: Filter banks, Mel-Frequency Cepstral Coefficients (MFCCs) and What's In-Between 출처: < http:...
-
영교차점(zero-crossing) 찾기 (파이썬) a = [1, 2, 1, 1, -3, -4, 7, 8, 9, 10, -2, 1, -3, 5, 6, 7, -10] 일 때, In[61]: z = np.where(np.diff(np.sign(...
댓글 없음:
댓글 쓰기