М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет87/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   83   84   85   86   87   88   89   90   ...   334
Байланысты:
Изучаем Python


Глава 6 • Словари
Перебор ключей словаря в определенном порядке
Начиная с Python версии 3.7, перебор содержимого словаря возвращает элементы 
в том порядке, в каком они вставлялись. Тем не менее иногда требуется перебрать 
элементы словаря в другом порядке.
Один из способов получения элементов в определенном порядке основан на сор-
тировке ключей, возвращаемых циклом 
for
. Для получения упорядоченной копии 
ключей можно воспользоваться функцией 
sorted()
:
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for name in sorted(favorite_languages.keys()):
print(f"{name.title()}, thank you for taking the poll.")
Эта команда 
for
не отличается от других команд 
for
, если не считать того, что 
метод 
dictionary.keys()
заключен в вызов функции 
sorted()
. Эта конструкция 
приказывает Python выдать список всех ключей в словаре и отсортировать его 
перед тем, как перебирать элементы. В выводе перечислены все пользователи, 
участвовавшие в опросе, а их имена упорядочены по алфавиту:
Edward, thank you for taking the poll. 
Jen, thank you for taking the poll. 
Phil, thank you for taking the poll. 
Sarah, thank you for taking the poll.
Перебор всех значений в словаре
Если вас прежде всего интересуют значения, содержащиеся в словаре, используйте 
метод 
values()
для получения списка значений без ключей. Допустим, вы хотите 
просто получить список всех языков, выбранных в опросе, и вас не интересуют 
имена людей, выбравших каждый язык:
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print("The following languages have been mentioned:")
for language in favorite_languages.values():
print(language.title())
Команда 
for
читает каждое значение из словаря и сохраняет его в переменной 
language
. При выводе этих значений будет получен список всех выбранных языков:


Перебор словаря
119
The following languages have been mentioned: 
Python 
C
Python 
Ruby
Значения извлекаются из словаря без проверки на возможные повторения. Для не-
больших словарей это может быть приемлемо, но в опросах с большим количеством 
респондентов список будет содержать слишком много дубликатов. Чтобы получить 
список выбранных языков без повторений, можно воспользоваться 
множеством
(set). Множество в целом похоже на список, но все его элементы должны быть 
уникальными:
favorite_languages = {
...
}
print("The following languages have been mentioned:")

for language in set(favorite_languages.values()):
print(language.title())
Когда список, содержащий дубликаты, заключается в вызов 
set()
, Python находит 
уникальные элементы списка и строит множество из этих элементов. В точке 

set()
используется для извлечения уникальных языков из 
favorite_languages.
values()
.
В результате создается не содержащий дубликатов список языков программиро-
вания, упомянутых участниками опроса:
The following languages have been mentioned:
Python
C
Ruby
В ходе дальнейшего изучения Python вы часто будете обнаруживать встроенные 
возможности языка, которые помогают сделать с данными именно то, что вам 
требуется.
ПРИМЕЧАНИЕ
Множество можно построить прямо в фигурных скобках с разделени-
ем элементов запятыми:
>>> 


Достарыңызбен бөлісу:
1   ...   83   84   85   86   87   88   89   90   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет