dict¶
- class
dict
Словарь
{'1': 1} dict(name=1) d1, d2 = {"а": 1, "b": 2}, {"а": 3, "с": 4, "d": 5} d1.keys() | d2.keys() # объединение, {'a', 'c', 'b', 'd'} d1.keys() - d2.keys() # разница, {'b'} d2.keys() | d1.keys() # разница, {'c', 'd'} d1.keys() & d2.keys() # одинаковые ключи, {'a'} d1.keys() ^ d2.keys() # уникальные ключи, {'c', 'b', 'd'}
-
clear
()¶ Очищает словарь
d = {'first': 'pervi', 'second': 'vtoroi'} d.clear() # d = {}
-
copy
()¶ Возвращает словарь, копию
d = {'first': 'pervi', 'second': 'vtoroi'} d.copy() # {'second': 'vtoroi', 'first': 'pervi'}
-
fromkeys
(iter_object[, default_value=None])¶ Возвращает
dict
, ключами которого являются элементы последовательности с дефолтным значением.dict.fromkeys('abc') # {'a': None, 'b': None, 'c', None}
-
get
(key[, default_value=None])¶ Возвращает значение словаря по ключу
d = {'first': 'pervi', 'second': 'vtoroi'} d.get('fif', 'fifa net') # 'fifa net'
-
has_key
(key)¶ Возвразает
bool
, имеет ли словарь ключd = {'first': 'pervi', 'second': 'vtoroi'} d.has_key('first') # True d.has_key('firsttttt') # False
Warning
Вместо has_key рекомендуется использовать in
d = {'first': 'pervi', 'second': 'vtoroi'} 'first' in d # True 'firsttttt' in d # False
-
items
()¶ Возвращает список кортежей (ключ, значение) элементов словаря.
Changed in version 3.x: возвращает объект
dict_items
d = {'first': 'pervi', 'second': 'vtoroi'} d.items() # [('second', 'vtoroi'), ('first', 'pervi')]
-
iterkeys
()¶
-
itervalues
()¶
-
iteritems
()¶
-
keys
()¶ Возвращает список, ключи словаря
Changed in version 3.x: возвращает объект
dict_keys
d = {'first': 'pervi', 'second': 'vtoroi'} d.keys() # ['second', 'first']
-
pop
(key[, default])¶ Возвращает значение по ключу, удалив запись из словаря.
Если ключа нет, возвращается указанное дефолтное значение.
Если ключа нет и не указано дефолтное значение, возбуждается исключение KeyError
-
popitem
()¶ Возвращает случайную пару (ключ, значение) из словаря, удаляя его из словаря.
{'first': 'pervi', 'second': 'vtoroi'}.popitem() # ('first', 'pervi')
-
setdefault
(key[, default=None])¶ Возвращает значение по ключу, если такого ключа нет, то возвращается дефолтное значение, при этом добавив в словарь новую запись.
d = {1 : 'One', 2 : 'Two', 3 : 'Three'} d.setdefault(4, 'Four') # 'Four' d # {1 : 'One', 2 : 'Two', 3 : 'Three', 4: 'Four'}
-
update
(key=value)¶
-
update
(dict)
-
update
([(key, value)])
-
update
(((key, value), )) Обновляет словарь.
d = {"а": 1, "b": 2} d.update(c=3, d=4) # d = {'а': 1, 'с': 3, 'b': 2, 'd': 4} d.update({"c": 10, "d": 20)) # d = {'а': 1, 'с': 10, 'Ь': 2, 'd': 20} d.update([("d", 80), ("е", 6)]) # d = {'а': 1; 'с': 10, 'Ь': 2, 'е': б, 'd': 80}
-
values
()¶ Возвращает список значений словаря
Changed in version 3.x: возвращает объект
dict_values
d = {'first': 'pervi', 'second': 'vtoroi'} d.values() # ['vtoroi', 'pervi']
-
dict_items¶
- class
dict_items
¶ Ключи и значения словаря в виде кортежей, который может быть получен с помощью метода словаря items.
New in version 3.x.
dict_keys¶
- class
dict_keys
¶ Ключи словаря, который может быть получен с помощью метода словаря keys.
New in version 3.x.
dict_values¶
- class
dict_values
¶ Значения словаря, который может быть получен с помощью метода словаря values.
New in version 3.x.
Генераторы словаря¶
{key:value for key, value in ((1,1), (2,2))}
# {1: 1, 2: 2}
Особенности работы со словарем¶
- Добавить в словарь ключ, и в качестве значения должен быть список,
- если ключ уже есть, то добавить значение в список.
d = {} key = 3 value = 3 if key in d: d[key].append(value) else: d[key] = [value] # d = {3: [3]}
d = {} key = 3 value = 3 d.setdefault(key, []).append(value) # d = {3: [3]}
Во втором варианте, всю логику из Варианта 1 выполняет сам интерпретатор.
Что оптимальней и быстрее.