Учебная страница курса биоинформатики,
год поступления 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