>>> 'Gilliam' in pythons
False
Черт.
Словари
89
Получение элемента словаря
с помощью конструкции [ключ]
Этот вариант использования словаря — самый распространенный. Вы указываете
словарь и ключ, чтобы получить соответствующее значение:
>>> pythons['Cleese']
'John'
Если ключа в словаре нет, будет сгенерировано исключение:
>>> pythons['Marx']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Marx'
Есть два хороших способа избежать возникновения этого исключения. Первый
из них — проверить, имеется ли заданный ключ, с помощью ключевого слова in,
что вы уже видели в предыдущем разделе:
>>> 'Marx' in pythons
False
Второй способ — использовать специальную функцию словаря get(). Вы ука-
зываете словарь, ключ и опциональное значение. Если ключ существует, вы полу-
чите связанное с ним значение:
>>> pythons.get('Cleese')
'John'
Если такого ключа нет, получите опциональное значение, если указывали его:
>>> pythons.get('Marx', 'Not a Python')
'Not a Python'
В противном случае будет возвращен объект None (интерактивный интерпрета-
тор не выведет ничего):
>>> pythons.get('Marx')
>>>
Получение всех ключей
с помощью функции keys()
Вы можете использовать функцию keys(), чтобы получить все ключи словаря.
Для следующих примеров мы берем другой словарь:
>>> signals = {'green': 'go', 'yellow': 'go faster', 'red': 'smile for the camera'}
>>> signals.keys()
dict_keys(['green', 'red', 'yellow'])
90
Глава 3. Наполнение Python: списки, кортежи, словари и множества
В Python 2 функция keys() возвращает простой список. В Python 3 эта функция возвращает
dict_keys() — итерабельное представление ключей. Это удобно для крупных словарей, по-
скольку не требует времени и памяти для создания и сохранения списка, которым вы, воз-
можно, даже не воспользуетесь. Но зачастую вам нужен именно список. В Python 3 надо
вызвать функцию list(), чтобы преобразовать dict_keys в список:
>>> list(signals.keys())
['green', 'red', 'yellow']