Подробное руководство по использованию разных способов перебора содержимого словаря в Python
Введение
Словари являются одной из самых популярных структур данных используемых на любом этапе разработки программного обеспечения. Словарь позволяет нам хранить наши данные в удобном формате ключ:значение, что в свою очередь, дает нам возможность получать быстрый доступ к данным внутри словаря.
Использование метода keys
Словари в Python имеют удобный метод, который позволяет нам легко перебирать все инициализированные ключи.
Имейте в виду, что начиная с Python 3 этот метод не возвращает список, а возвращает объект представления. Объект представления — это возвращаемое значение исходного объекта, изменения которого не влияют на исходный объект. Для внесения изменений и сохранения данных в измененном объекте представления необходимо присвоить его какой-либо переменной.
Давайте посмотрим, как это работает:
# В качестве словаря используем рейтинг популярности языков программирования TIOBE
tiobe_index = {
"C": 17.38,
"Java": 11.96,
"Python": 11.72,
"C++": 7.56,
"C#": 3.95,
}
# Выведем на экран список ключей словаря и тип объекта возвращаемый выполнением метода keys
print(f"Key view: {tiobe_index.keys()}")
print(f"Type: {type(tiobe_index.keys())}")
Результат выполнения кода
Key view: dict_keys(['C', 'Java', 'Python', 'C++', 'C#'])
Type: <class 'dict_keys'>
Итерация словаря по ключу в цикле for с указанием индекса элемента
for k in tiobe_index.keys():
print(f"{k}: {tiobe_index[k]}")
Результат выполнения кода
C: 17.38
Java: 11.96
Python: 11.72
C++: 7.56
C#: 3.95
При использовании ключевого слова in в цикле for словарь вызывает свой метод iter. Затем этот метод возвращает итератор, который используется для неявного просмотра ключей предоставленного словаря.
Использование метода value
Так же как и метод keys, метод value возвращает объект представления, но вместо итерации по ключу, он итератует по значениям:
# В качестве словаря используем рейтинг популярности языков программирования TIOBE
tiobe_index = {
"C": 17.38,
"Java": 11.96,
"Python": 11.72,
"C++": 7.56,
"C#": 3.95,
}
# Выведем на экран список значений словаря и тип объекта возвращаемый выполнением метода value
print(f"Value view: {tiobe_index.values()}")
print(f"Type: {type(tiobe_index.values())}")
Результат выполнения кода
Value view: dict_values([17.38, 11.96, 11.72, 7.56, 3.95])
Type: class <'dict_values'>
Итерация словаря по значению в цикле for
for k in tiobe_index.values():
print(f"{k}")
Результат выполнения кода
17.38
11.96
11.72
7.56
3.95
В отличие от предыдущего метода, этот метод предоставляет только значения. Он полезен, когда вас не интересует содержимое ключей в словаре.
Использование метода items
Так же как и методы keys и values, метод items возвращает объект представления, но вместо того, чтобы просто выполнять итерации по ключам или значениям, он выполняет итерации по индексу словарю (ключу и значению одновременно).
Давайте посмотрим как это работает
# В качестве словаря используем рейтинг популярности языков программирования TIOBE
tiobe_index = {
"C": 17.38,
"Java": 11.96,
"Python": 11.72,
"C++": 7.56,
"C#": 3.95,
}
# Выведем на экран список элементов словаря и тип объекта возвращаемый выполнением метода items
print(f"Items view: {tiobe_index.items()}")
print(f"Type: {type(tiobe_index.items())}")
Результат выполнения кода
Items view: dict_items([('C', 17.38), ('Java', 11.96), ('Python', 11.72), ('C++', 7.56), ('C#', 3.95)])
Type: <class 'dict_items'>
Итерация словаря по паре клюк:значение происходит следующим образом
for k, v in tiobe_index.items():
print(f"key: {k}, value: {v}")
Результат выполнения кода
key: C, value: 17.38
key: Java, value: 11.96
key: Python, value: 11.72
key: C++, value: 7.56
key: C#, value: 3.95
Важно отметить, что в старых версиях Python, где items, keys и values возвращали копию данных из словаря, Python 3 возвращает объект представления.
Они более эффективны, так как обеспечивают динамическое представление и кроме того, при внесении изменений в исходный словарь, они сразу же отражаются в объекте представления (и наоборот).
Заключение
В этой статье мы рассмотрели различные способы итерации по словарю в Python используя методы keys(), values() и items().
Если вы ищите способ системно подойти к обучению языка программирования Python, рекомендую записаться на курсы онлайн обучения.
Поделиться записью в социальных сетях