Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2016

Указания к занятию 11

Словарь (dict) – это тип данных, хранящий соответствие одних значений другим (ключам словаря).

Примеры (обратите внимание: в примере встречаются три типа скобок)

>>> da = {"a":5, "b":6, "c":7, "d":5}
>>> db = = dict()
>>> db["a"] = 2
>>> db["b"] = 3
>>> print db
{'a': 2, 'b': 3}
>>> da["a"] + db["a"]
7

Значения словаря могут повторяться, ключи – нет.

Метод keys() возвращает список ключей словаря:

>>> db = dict()
>>> db["a"] = 2
>>> db["b"] = 3
>>> db.keys()
['a', 'b']

Ключом словаря может быть любое значение неизменяемого типа. К неизменяемым относятся типы int, float, bool, str, к изменяемым – list и сам dict. То есть словарь не может быть ключом словаря. Но словарь вполне может быть значением словаря, то есть ситуация вида x["a"]["b"] вполне допустима.

Если очень хочется сделать ключом словаря список, то нужно использовать не list, а другой тип данных — кортеж (tuple). Кортеж (на первый взгляд) отличается от списка только заменой квадратных скобок на круглые, например:

>>> ta = (1, 2, 5, 4)
>>> ta[0]
1
>>> ta[3]
4
>>> len(ta)
4

Но есть и различия, главное из которых – неизменяемость кортежа:

>>> la = [1, 2, 3, 4]
>>> la[0] = 7
>>> la
[7, 2, 3, 4]
>>> ta = (1, 2, 3, 4)
>>> ta[0] = 7
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment