Подробное руководство по использованию разных способов перебора содержимого словаря в 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().
Спасибо за статью.
Весьма познавательная.
Удачи в вашем деле.
Автор Молодец….статья интересная ….продолжай писать подобное )))
стараюсь)))