Словари

Словари

Словарь — это структура данных, которая представляет отображение из одного типа данных в другой. Представляет собой набор пар ключ-значение, в качестве ключа могут выступать неизменяемые (immutable) типы данных (int, str, tuple, …)
По сути словари – аналог map в языке C++

Пустой словарь можно создать либо с помощью `{}`, либо с `dict()`:
d = {}
dd = dict()
print(d == dd, ‘|’, type(d))

Также можно создать с помощью метода fromkeys:
d = dict.fromkeys([‘a’, ‘b’]) #{‘a’: None, ‘b’: None}
d = dict.fromkeys([‘a’, ‘b’], 100) #{‘a’: 100, ‘b’: 100}

Или с помощью генераторов словарей, которые очень похожи на генераторы списков.
d = {a: a ** 2 for a in range(7)} #{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36}

 

Значение добавляется (или перезаписывает имеющееся) как в массив:
key = ‘b’
value = 100

d[key] = value

В качестве данных могут быть любые типы в т.ч. словари (что удобно при работе с JSON)
# ключи — обязательно незменяемые объекты
# значения — произвольные объекты (в тч. типы данных не из питона)

d = {
	'зарплаты':{
	'Петя':100000,
	'Аня':100000,
	},
	'проекты':['разработка нормальной БД']
}

Инициализировать словарь можно с помощью кортежей – где на 1 месте ключ, на 2 значение.

Для получения значений надо после названия переменной указать ключ:
d[‘зарплаты’]

Можно обращаться к вложенным словарям:
d[‘зарплаты’][‘Аня’]

 

Методы словарей
dict.clear() — очищает словарь.
dict.copy() — возвращает копию словаря.
classmethod dict.fromkeys(seq[, value]) — создает словарь с ключами из seq и значением value (по умолчанию None).
dict.get(key[, default]) — возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None).
Для обращения по ключу можно обращаться через оператор [] или метод .get
в методе .get при обращении к несуществующему ключу получем None
при использовании оператора [] получим ошибку

dict.items() — возвращает пары (ключ, значение).
dict.keys() — возвращает ключи в словаре.
Из словаря можно получить ключи:
dict.keys()

А потом их привести к списку
list(dict.keys())

dict.values() — возвращает значения в словаре.
Аналогично dict.keys() позволяет создать список из значений

dict.pop(key, default) — удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение).
dict.pop(‘проекты’, None) # ошибка не вызовется, если удаляемого ключа не будет
Удалять элементы можно через del (но будет ошибка если ключа нет – лучше использовать метод pop) синтаксис: del d[…]
dict.popitem() — удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.
dict.setdefault(key, default) — возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ со значением default (по умолчанию None).
dict.update([other]) — обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!).
Все ключи словаря внутри update, которых нет в словаре dict добавляются туда вместе со своими значениями. Значения общих для обоих словарей ключей заменяются на значения из словаря, подаваемого в аргументы update.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *