Объявление словарей производится вызовом директивы dict().
a = dict()
b = {}
c = {'Маша': 5, 'Вова': 4, 'Боря': 3, 'Миша': 4, 'Варя': 2}
d = dict(Маша=5, Вова=4, Боря=3, Миша=4, Варя=2)
e = dict([('Маша', 5), ('Вова', 4), ('Боря', 3), ('Миша', 4), ('Варя', 2)])
f = dict( zip(['Маша', 'Вова', 'Боря', 'Миша', 'Варя'], [5, 4, 3, 4, 2]))
Таблица "Методы словарей"
Метод |
Что делает |
dict.clear() |
очищает словарь. |
dict.copy() |
возвращает (поверхностную) копию словаря. |
classmethod dict.fromkeys(seq[, value]) |
создает словарь с ключами из seq и значением value (по умолчанию None). |
dict.get(key[, default]) |
возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None). |
dict.items() |
возвращает пары (ключ, значение). |
dict.keys() |
возвращает ключи в словаре. |
dict.pop(key[, default]) |
удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение). |
dict.popitem() |
удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены. |
dict.setdefault(key[, default]) |
возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None). |
dict.update([other]) |
обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!). |
dict.values() |
возвращает значения в словаре. |
Таблица "Дополнительные Методы"
Изменить имеющийся элемент или создать новый:
d = {}
li = d.get('name', [])
if li == []:
li.add(1)
li.add('text')
else:
li[0] += 1
li[1] = "new next"
Генерация словаря (использование генераторов при создании словаря):
{k: v for (k, v) in [('foo', 1), ('bar', 2)]}
# {'bar': 2, 'foo': 1}
Fix string keys (ключ-строку преобразовать в ключ-число)
mydict = {'1': 'value1', '2': 'value2'}
{int(k): v for (k, v) in mydict.items()}
# {1: 'value1', 2: 'value2'}
Развернуть словарь - reverse a dictionary
{v: k for k, v in mydict.items()}
# {'value1': '1', 'value2': '2'}
Исключить ключи со значением None - drop keys with None values
mydict = {'foo': 42, 'bar': None}
{k: v for k, v in mydict.items() if v is not None}
# {'foo': 42}
Алфавит и цифры в словаре с параметром (values)
import string
s = string.ascii_uppercase + '0123456789'
d = {b: 0 for b in list(s)}
print(d)
# {'A': 0, 'B': 0, 'C': 0, ... , '7': 0, '8': 0, '9': 0}
Нумерация словаря (enumerate(dict()))
dictx = {'mama': 123, 'papa': 456}
for i, data in enumerate(dictx.items(), start=1):
print(i, data[0], data[1])
for i, s, n in [(i, *d) for i, d in enumerate(dictx.items(), start=1)]:
print(i, s, n)
|
1 mama 123
2 papa 456
1 mama 123
2 papa 456
|