Рейтинг  

Яндекс.Метрика
Яндекс цитирования
 

   

Статистика  

Пользователи
7
Материалы
592
Кол-во просмотров материалов
2825184
   

Объявление словарей производится вызовом директивы 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() возвращает значения в словаре.

Таблица "Дополнительные Методы"

Метод Что делает Узнать больше
import copy
copy.deepcopy()
возвращает (глубокую) копию словаря. Использование функций copy и deepcopy в Python

Изменить имеющийся элемент или создать новый:

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




   
   

Login Form