Добавить в корзинуПозвонить
Найти в Дзене

Python. Основы синтаксиса. Словарь. Часть 4.1

В прошлой статье мы остановились на том, что научились: создавать словарь, добавлять новую пару ключ-значение, изменять значение по ключу и удалять пару ключ-значение из словаря. В этой статье мы разберём как ещё можно работать с словарём. Словарь можно перебирать с помощью цикла FOR. При каждой итерации мы получаем ключ из словаря. Листинг 1 # Создадим словарь
# Ключ это id товара, а значение наименование товара
dictionary = {1: "Творог Домик в деревне", 15: "Йогурт папа может", 205:"Жареный гусь \"Лёха\""}
# Реализуем цикл по словарю
for key in dictionary:
print(f"Key: {key} - Value: {dictionary[key]}") Вывод: Key: 1 - Value: Творог Домик в деревне Key: 15 - Value: Йогурт папа может Key: 205 - Value: Жареный гусь "Лёха" Но так работать с словарём неудобно, с точки зрения того, что приходится каждый раз обращаться к словарю и получать значение по ключу. На такой случай у словаря есть метод items. Метод items возвращает список с неизменяемой последовательностью вида ключ-значен

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

В этой статье мы разберём как ещё можно работать с словарём.

Словарь можно перебирать с помощью цикла FOR. При каждой итерации мы получаем ключ из словаря.

Листинг 1
# Создадим словарь
# Ключ это id товара, а значение наименование товара
dictionary = {1: "Творог Домик в деревне", 15: "Йогурт папа может", 205:"Жареный гусь \"Лёха\""}
# Реализуем цикл по словарю
for key in dictionary:
print(f"Key: {key} - Value: {dictionary[key]}")
Вывод:
Key: 1 - Value: Творог Домик в деревне
Key: 15 - Value: Йогурт папа может
Key: 205 - Value: Жареный гусь "Лёха"

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

Метод items возвращает список с неизменяемой последовательностью вида ключ-значение.

Листинг 2
# Создадим словарь
# Ключ это id товара, а значение наименование товара
dictionary = {1: "Творог Домик в деревне", 15: "Йогурт папа может", 205:"Жареный гусь \"Лёха\""}
# Реализуем цикл по словарю
for key, value in dictionary.items():
print(f"Key: {key} - Value: {value}")
Вывод:
Key: 1 - Value: Творог Домик в деревне
Key: 15 - Value: Йогурт папа может
Key: 205 - Value: Жареный гусь "Лёха"

Как видно на листинге 2 вывод ничем не отличает от листинга 1, но стало комфортнее работать с словарём в цикле благодаря методу items.

Так же у словаря есть метод key, который возращает только список ключей.

Листинг 3
# Создадим словарь
# Ключ это id товара, а значение наименование товара
dictionary = {1: "Творог Домик в деревне", 15: "Йогурт папа может", 205:"Жареный гусь \"Лёха\""}
# Реализуем цикл по словарю
print(dictionary.keys())
for key in dictionary.keys():
print(f"Key: {key}")
Вывод:
dict_keys([1, 15, 205])
Key: 1
Key: 15
Key: 205

Как видно из примера при выводе в консоль dictionary.keys() мы получили только список ключей без значений. Аналогично работает метод values().

Чтобы лучше понять как работать с словарями и его методами, давайте напишем небольшую программу.

Предположим вы с друзьями пришли в кафе и нужно написать программу, которая рассчитает сумму чека и выводит список друзей через запятую.

Листинг 4
# Создадим словарь
dictionary = {"Вова": 3000, "Алексей": 900, "Катя": 700, "Алла": 1500}

# Реализуем формирование строковой переменной, которая будет хранить в себе наши ключе через запятую
# Метод join объединяет список строк с указателем, в нашем случае это запятая
guest = ", ".join(dictionary.keys())

# Посчитаем сумму чека
# Запустим цикл по значениям словаря
total = 0
for value in dictionary.values():
total += value

# Выводим данные в консоль
print(guest)
print(f"Сумма чека: {total}")
Вывод:
Вова, Алексей, Катя, Алла
Сумма чека: 6100

Словарь в Python очень сильный инструмент и с ним можно делать, что угодно.

Если я что-то упустил напишите об этом в комментариях.

Другие статьи канала: