Шаг 92.
Основы языка Python.
Словари. Перебор элементов словаря

    На этом шаге мы рассмотрим различные способы перебора словаря.

    Перебрать все элементы словаря можно с помощью цикла for, хотя словари и не являются последовательностями. Для примера выведем элементы словаря двумя способами. Первый способ использует метод keys (), возвращающий объект с ключами словаря. Во втором случае мы просто указываем словарь в качестве параметра. На каждой итерации цикла будет возвращаться ключ, с помощью которого внутри цикла можно получить значение, соответствующее этому ключу:

d = {"х": 1, "у": 2, "z": 3}
for key in d.keys(): # Использование метода keys()
    print("({0} => {1})".format(key, d[key]), end=" ")
# Выведет: (у => 2) (x => 1) (z => 3)
print()	# Вставляем символ перевода строки
for key in d:	# Словари также поддерживают итерации
    print("({0} => {1})".format(key, d[key]), end=" ")
# Выведет: (у => 2) (x => 1) (z => 3)
Архив с файлом можно взять здесь.

    Результат работы приложения приведен на рисунке 1.


Рис.1. Результат работы приложения

    Поскольку словари являются неупорядоченными структурами, элементы словаря выводятся в произвольном порядке. Чтобы вывести элементы с сортировкой по ключам, следует получить список ключей, а затем воспользоваться методом sort ().

    Пример:

d = {"х": 1, "у": 2, "z": 3}
k = list(d.keys()) #  Получаем список ключей
k.sort() #  Сортируем список ключей
for key in k:
    print("({0} => {1})".format(key, d[key]), end=" ")
# Выведет: (x => 1) (y => 2) (z => 3)
Архив с файлом можно взять здесь.

    Результат работы приложения приведен на рисунке 2.


Рис.2. Результат работы приложения

    Для сортировки ключей вместо метода sort () можно воспользоваться функцией sorted(). Пример:

d = {"х": 1, "у": 2, "z": 3}
for key in sorted(d.keys()):
    print("({0} => {1})".format(key, d[key]), end=" ")
# Выведет: (x => 1) (y => 2) (z => 3)

    Так как на каждой итерации возвращается ключ словаря, функции sorted () можно сразу передать объект словаря, а не результат выполнения метода keys():

d = {"х": 1, "у": 2, "z": 3}
for key in sorted(d):
    print("({0} => {1})".format(key, d[key]), end=" ")
# Выведет: (x => 1) (y => 2) (z => 3)

    На следующем шаге мы рассмотрим методы для работы со словарями.




Предыдущий шаг Содержание Следующий шаг