Q & A

문자열 한 줄을 여러 줄로 입력하고 싶어요.

문자열 한 줄이 너무 길어서 텍스트 편집기의 화면을 넘어서는 경우가 종종 있습니다. 이런 경우에는 \를 사용하여 줄바꿈을 한 뒤 다음 줄에서 문자열을 계속 입력할 수 있습니다.

s = 'Fortunately, however, for the reputation of Asteroid B-612, \
a Turkish dictator made a law that his subjects, under pain of death, \
should change to European costume. \
So in 1920 the astronomer gave his demonstration all over again, \
dressed with impressive style and elegance. \
And this time everybody accepted his report.'

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

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

컨테이너란 무엇인가요?

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

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

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

다음과 같이 파이썬 3.6 이상에서 딕셔너리를 만들어보면 키의 순서가 바뀌지 않고 계속 유지됩니다.

파이썬 3.6

>>> lux = {'health': 490, 'health': 800, 'mana': 334, 'melee': 550, 'armor': 18.72}
>>> lux
{'health': 800, 'mana': 334, 'melee': 550, 'armor': 18.72}

파이썬 3.5와 그 이하 버전에서는 키의 순서가 보장되지 않습니다.

파이썬 3.5

>>> lux = {'health': 490, 'health': 800, 'mana': 334, 'melee': 550, 'armor': 18.72}
>>> lux
{'armor': 18.72, 'health': 800, 'mana': 334, 'melee': 550}

만약 파이썬 3.5 이하에서 키의 순서가 보장되도록 만들려면 collections 모듈의 OrderedDict를 사용하면 됩니다.

  • OrderedDict(딕셔너리)
>>> from collections import OrderedDict
>>> lux = OrderedDict({'health': 490, 'health': 800, 'mana': 334, 'melee': 550, 'armor': 18.72})
>>> lux
OrderedDict([('health', 800), ('mana', 334), ('melee', 550), ('armor', 18.72)])

사실 OrderedDict는 키의 순서를 보장하기 위해 사용하는 것이 아니라, 딕셔너리를 키로 정렬하고 싶을 때 사용합니다. 그래서 파이썬 3.6에도 여전히 OrderedDict가 남아있습니다.