Документация по Python. Теоретические материалы, и практические задачи

Python работа со словарями

В этой статье разберем все о логике работы словарей в Python. Мы научимся создавать их, получать доступ к элементам словаря, добавлять, удалять элементы. При работе со словарями мы так же разберем и встроенные методы. В Python работа со словарями, особо не отличается от работы со списками, кортежами, и.т.д.

Словарь в Python — это неупорядоченная последовательность элементов. Каждый элемент словаря имеет пару ключ:значение. Словари для извлечение значений, по его ключу.

Как создать словарь ?

Создание словаря, ничем особо сложным не отличается, мы заключаем словарь в фигурные { } скобки, а элементы идут через запятую. Каждый элемент словаря содержит (ключ:значение).


dict = {}

dict = {1:'яблоко',2:'Груша'}

dics = {'name':'Тимур',1:[2,3,4,5]}

dict = dict({1:'Яблоко', 2:'Груша'})

Выше рассмотрены варианты создания словаря в Python. Как вы могли заметить словари можно создать заключая пары в фигурные скобки, так и используя функцию dict().

Внутри словаря, можно хранить в качестве значений любой тип данных. Но, ключи значений обязательно должны иметь неизменяемый тип данных, и так они должны быть уникальными.

Доступ к элементам Словаря

Для доступа к элементам словаря, можно воспользоваться квадратными скобками [], либо использовать метод get(). В случае если мы воспользуемся квадратными скобками, то если ключ не найден, то мы получим ошибку KeyError. Если мы воспользуемся get(), и при условии что ключ не будет найден, функция вернет нам None.


dict ={'name':'Тимур', 'age':30}

print(dict['name'])

print(dict.get('age'))

print(dict.get('adress'))

print(dict['adress'])

Результат:

Тимур

30

None

KeyError: 'adress'

Изменение и добавление элементов в словарь

С помощью оператора присваивания, мы можем добавлять новые элементы, а так же менять значение существующих. Если ключ существует, то обновляется его значение, если он отсутствует, то в словарь добавляется пара (ключ:значение).


dict ={'name':'Тимур', 'age': 30}

dict['age'] = 31

print(dict)

dict['adress'] = 'Москва'

print(dict)

Результат:

{'name':'Тимур', 'age':31}

{'name':'Тимур', 'age':31, 'adress':'Москва'}

Удаление элементов из словаря

С помощью метода pop(), мы можем удалить конкретный ключ, и он нам вернет значение этого ключа. Метод popitem() удалит случайную пару ключ:значение, и так же вернет случайную пару ключ:значение. Весь словарь можно очистить с помощью метода clear(). Для удаление отдельных элементов, можно воспользоваться ключевым словом del.


diction ={1:1,2:4, 3:9, 4:16, 5:25}

print(diction.pop(4))

print(diction)

print(diction.popitem())

print(diction)

diction.clear

print(diction)

Результат:

16

{1: 1, 2: 4, 3: 9, 5: 25}

(1, 1)

{2: 4, 3: 9, 5: 25}

{}

Методы словаря

МетодОписание
clear()Удаляет все элементы из словаря.
copy()Возвращает копию словаря.
fromkeys(seq[, v])Возвращает новый словарь с ключами из seq и значение, равное v (по умолчанию используется значение None).
get(key[,d])Возвращает значение key. Если key не существует, возвращается d (по умолчанию используется значение None).
items()Возвращает новый объект элементов словаря в формате (ключ, значение).
keys()Возвращает новый объект ключей словаря.
pop(key[,d])Удаляет элемент с помощью key и возвращает его значение или d если key не найден. Если d не предусмотрено и key не найден, его поднимает KeyError.
popitem()Удаляет и возвращает произвольный элемент (ключ, значение). Повышения KeyError если словарь пуст.
setdefault(key[,d]) Возвращает соответствующее значение, если key есть в словаре. Если нет, то вставляет key со значением d и возвращается d (по умолчанию используется значение None).
update([other])Обновляет словарь парами ключ/значение из other, перезапись существующих ключей.
values()Возвращает новый объект значений

Примеры работы этих методов


marks = {}.fromkeys(['Math','English', 'Scinece'], 0)

print(marks)

for item in marks.items():

    print(item)

print(list(sorted(marks.keys())))

Результат:

{'Math': 0, 'English': 0, 'Science': 0}

('Math', 0)

('English', 0)

('Science', 0)

['English', 'Math', 'Science']

Генерирование словаря

Если помните, мы с вами уже рассматривали генерацию списков, кортежей и.т.д. В принципе логика генерации словарей, не сильно отличается. Рассмотрим пример создание генерированного словаря, где элемент будет равен квадрату своего ключа.


dictionary = {x: x * x for x in range(6)}

print(dictionary)

Результат:

{0:0,1:1,2:4,3:9,4:16,5:25}

Вышеописанный код эквивалентен


dictionary ={}

for x in range(6):

dictionary[x] = x * x

print(dictionary)

Результат:

{0:0,1:1,2:4,3:9,4:16,5:25}

Так же при генерации словаря, мы можем воспользоваться оператором условий if. Рассмотрим пример создания словаря с нечетными элементами.


dictionary = {x: x * x for x in range(11) if x % 2 == 1}

print(dictionary)

Результат:

{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

Проверка на наличие элемента

Проверяем наличие элемента, с помощью ключевого слова in.


dictionary = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

print(1 in dictionary)

print(2 not in dictionary)

print(49 in dictionary)

Результат:

True

True

False

Итерация по словарю


dictionary = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

for i in dictionary:

    print(dictionary(i))

Результат:

1

9

25

49

81

Встроенные функции словаря

ФункцииОписание
all()ВозвращаетTrue, если все ключи словаря Истинны (или если словарь пуст).
any()ReturnTrue, если какой - либо ключ словаря истинен. Если словарь пуст, вернитесь False.
len()Возвращает длину (количество элементов) в словаре.
sorted()Возвращает новый отсортированный список ключей в словаре.

 

Оставьте комментарий

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