Доступ к вложенным элементам словаря в 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 имеет смысл, если у вас много этих строк формата и вы не знаете, какие значения они используют, и хотите, чтобы они могли получить доступ к любому значению.

или если вы используете много значений в строке формата и передача их по отдельности слишком многословна.