Доступ к вложенным элементам словаря в Python
Я пытаюсь отформатировать строку, используя элемент из вложенной словарь (ниже)
people = {
'Alice': {
'phone': '2341',
'addr': '87 Eastlake Court'
},
'Beth': {
'phone': '9102',
'addr': '563 Hartford Drive'
},
'Randy': {
'phone': '4563',
'addr': '93 SW 43rd'
}
}
из приведенного выше (простого) словаря я хочу отформатировать строку, чтобы распечатать расширение телефона Рэнди.
Я могу получить доступ ко всем его деталям, используя:
print("Randy's phone # is %(Randy)s" % people)
но я не уверен, как углубиться в словарь, чтобы выделить только номер телефона из словаря.
кстати, я использую Python 3.3.
1 ответов
использовать новое форматирование строк:
print("Randy's phone # is {0[Randy][phone]}".format(people))
или
print("Randy's phone # is {Randy[phone]}".format(**people))
нет смысла передавать весь словарь, если вы используете только одно значение.
print("Randy's phone # is {}".format(people['Randy']['phone']))
или
print("Randy's phone # is %s" % people['Randy']['phone'])
также будет работать.
передача dict имеет смысл, если у вас много этих строк формата и вы не знаете, какие значения они используют, и хотите, чтобы они могли получить доступ к любому значению.
или если вы используете много значений в строке формата и передача их по отдельности слишком многословна.