Q & A

딕셔너리와 세트에 요소를 몇 개까지 넣을 수 있나요?

딕셔너리와 세트는 현재 운영체제에서 사용할 수 있는 메모리 크기만큼 키와 값, 요소를 넣을 수 있습니다.

컨테이너란 무엇인가요?

컨테이너는 화물을 수송할 때 사용하는 큰 박스를 말하는데, 파이썬에서는 데이터를 담는 자료형인 리스트, 튜플, 딕셔너리, 세트를 컨테이너라 부릅니다.

딕셔너리는 키의 순서가 보장되나요?

파이썬 3.6 미만에서는 키의 순서가 정해져 있지 않습니다. 하지만 파이썬 3.6부터는 딕셔너리를 생성했을 때와 키를 추가했을 때의 순서를 따르므로 순서가 보장됩니다. 파이썬 3.6 이하에서는 키의 순서가 보장되는 collections.OrderedDict를 사용하면 됩니다.

딕셔너리와 세트는 while로 반복할 수 있나요?

딕셔너리와 세트를 while로 반복하려면 조금 복잡합니다. 다음과 같이 딕셔너리와 세트에서 이터레이터를 얻은 뒤에 next로 요소를 차례대로 꺼내면 됩니다. 이터레이터는 'Unit 41 이터레이터 사용하기', 예외 처리는 'Unit 40 예외처리 사용하기'에서 설명하겠습니다.

x = {'a': 10, 'b': 20, 'c': 30, 'd': 40, 'e': 50}                # 딕셔너리
#x = {'strawberry', 'grape', 'orange', 'pineapple', 'cherry'}    # 세트
it = iter(x)                  # 이터레이터를 얻음
while True:
    try:
        print(x[next(it)])    # 딕셔너리에 키를 지정해서 값 출력
        #print(next(it))      # 세트의 요소 출력
    except StopIteration:
        break

다른 언어에 있는 switch 문법은 사용할 수 없나요?

파이썬은 switch 문법이 없습니다. 하지만 딕셔너리를 사용하면 switch처럼 사용할 수는 있습니다. 람다 표현식은 'Unit 34 람다 사용하기'에서 설명하겠습니다.

switch = {
    '+': lambda x, y: x + y,    # 람다 표현식으로 실행할 코드를 작성
    '*': lambda x, y: x * y
    }
 
x = '+'
try:
    print(switch[x](10, 20))    # 딕셔너리에 키를 지정하는 방식
except KeyError:
    print('default')            # 딕셔너리에 키가 없을 때는 기본값
최근 수정: 2017년 9월 4일, 월요일, 오전 11:50