мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
python:week5 [16/02/2017 12:25] – создано ybezrukovpython:week5 [24/11/2017 11:35] (текущий) – [Упорядочивание словарей] ybezrukov
Строка 3: Строка 3:
 Используя данные предыдущего задания вывести на экран все страны с количеством городов в них Используя данные предыдущего задания вывести на экран все страны с количеством городов в них
  
 +====== Упорядочивание словарей ======
 +
 +Как нам уже известно, для словарей существует особенность. Порядок выдачи элементов словаря не совпадает с порядком добавления, что несколько усложняет использование внешних функций сортировки. Однако, в Питоне существует встроенный метод решения проблемы сортировки: функция sorted(). Предположим, что у нас есть словарь следующего вида: 
 +
 +<code python>
 +
 +d = {1: 'D', 2: 'B', 3: 'B', 5: 'E', 4: 'A'}
 +
 +</code>
 +
 +Результатом применения функции sorted() к этому словарю будет список: [1,2,3,4,5], который уже можно использовать для получения данных из словаря в порядке возрастания ключей.
 +
 +
 +<code python>
 +
 +for i in sorted(d):
 +  print(d[i])
 +
 +</code>
 +
 +В результате получим:
 +
 +<code>
 +D
 +B
 +B
 +A
 +E
 +</code>
 +
 +Аналогичную операцию можно применить и для значений:
 +
 +
 +<code python>
 +
 +for i in sorted(d.values()):
 +  print(i)
 +
 +</code>
 +
 +Результатом работы будет
 +<code>
 +A
 +B
 +B
 +D
 +E
 +</code>
 +
 +Однако, если нам нужны значения ключей, упорядоченные по значениям, то нужно применить следующий трюк
 +
 +<code python>
 +for i in sorted(d, key=d.__getitem__):
 +    print(i)
 +</code>
 +
 +И результатом будет:
 +
 +<code>
 +4
 +2
 +3
 +1
 +5
 +</code>
 ====== Задание 8 ====== ====== Задание 8 ======
  
 Вывести на экран список стран, упорядоченный по возрастанию количества городов Вывести на экран список стран, упорядоченный по возрастанию количества городов
-