Книга «Изучаем Python»



Pdf көрінісі
бет69/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   65   66   67   68   69   70   71   72   ...   238
ПРИМЕЧАНИЕ

Глубина вложения списков и словарей не должна быть слишком большой . Если вам при-

ходится вкладывать элементы на глубину существенно бо

́льшую, чем в предыдущих при-

мерах, или если вы работаете с чужим кодом со значительной глубиной вложения, скорее 

всего, у задачи существует более простое решение .




118    Глава 6  •  Словари

Словарь в словаре

Словарь также можно вложить в другой словарь, но в таких случаях код быстро 

усложняется. Например, если на сайте есть несколько пользователей с уникаль-

ными именами, вы можете использовать имена пользователей как ключи в сло-

варе. Информация о каждом пользователе при этом хранится в словаре, который 

используется как значение, связанное с именем. В следующем примере о каждом 

пользователе хранятся три вида информации: имя, фамилия и место жительства. 

Чтобы получить доступ к этой информации, переберите имена пользователей 

и словарь с информацией, связанной с каждым именем:



many_users.py

users = {

    'aeinstein': {

        'first': 'albert',

        'last': 'einstein',

        'location': 'princeton',

        },

    'mcurie': {

        'first': 'marie',

        'last': 'curie',

        'location': 'paris',

        },

    }



for username, user_info in users.items():



    print("\nUsername: " + username)

    full_name = user_info['first'] + " " + user_info['last']



    location = user_info['location']

    print("\tFull name: " + full_name.title())



    print("\tLocation: " + location.title())

В программе определяется словарь с именем 

users

, содержащий два ключа: для 



пользователей 

'aeinstein'

 и 

'mcurie'


. Значение, связанное с каждым ключом, 

представляет собой словарь с именем, фамилией и местом жительства пользова-

теля. В процессе перебора словаря 

users


 в точке  Python сохраняет каждый ключ 

в переменной 

username

, а словарь, связанный с каждым именем пользователя, со-

храняется в переменной 

user_info

. Внутри основного цикла в словаре выводится 

имя пользователя .

В точке  начинается работа с внутренним словарем. Переменная 

user_info

, со-

держащая словарь с информацией о пользователе, содержит три ключа: 



'first'

'last'



 и 

'location'

. Каждый ключ используется для построения аккуратно от-

форматированных данных с полным именем и местом жительства пользователя, 

с последующим выводом сводки известной информации о пользователе :

Username: aeinstein 

    Full name: Albert Einstein 

    Location: Princeton 

Username: mcurie 

    Full name: Marie Curie 

    Location: Paris



Итоги    119

Обратите внимание на идентичность структур словарей всех пользователей. Хотя 

Python этого и не требует, наличие единой структуры упрощает работу с вложен-

ными словарями. Если словари разных пользователей будут содержать разные 

ключи, то код в цикле 

for


 заметно усложнится.



Достарыңызбен бөлісу:
1   ...   65   66   67   68   69   70   71   72   ...   238




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

    Басты бет