Подтвердить что ты не робот

Синтаксис для создания словаря в другом словаре в python

Возможный дубликат:
чтобы вставить один список в другой список в python

Как может быть синтаксис для создания словаря в другом словаре в python

4b9b3361

Ответ 1

Вы можете объявить словарь внутри словаря, вставив контейнер {}:

d = {'dict1': {'foo': 1, 'bar': 2}, 'dict2': {'baz': 3, 'quux': 4}}

И затем вы можете получить доступ к элементам, используя синтаксис []:

print d['dict1']           # {'foo': 1, 'bar': 2}
print d['dict1']['foo']    # 1
print d['dict2']['quux']   # 4

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

d['dict3'] = {'spam': 5, 'ham': 6}

или если вы предпочитаете добавлять элементы во внутренний словарь по одному:

d['dict4'] = {}
d['dict4']['king'] = 7
d['dict4']['queen'] = 8

Ответ 2

dict1 = {}

dict1['dict2'] = {}

print dict1

>>> {'dict2': {},}

это обычно называют вставкой итераторов в другие итераторы, я думаю,

Ответ 3

Вы хотите вставить один словарь в другой, как один из его элементов, или вы хотите ссылаться на значения одного словаря из ключей другого?

Предыдущие ответы уже рассмотрели первый случай, когда вы создаете словарь в другом словаре.

Чтобы повторно ссылаться на значения одного словаря на другой, вы можете использовать dict.update:

>>> d1 = {1: [1]}
>>> d2 = {2: [2]}
>>> d1.update(d2)
>>> d1
{1: [1], 2: [2]}

В обоих словарях будет отображаться изменение значения, которое присутствует в обоих словарях:

>>> d1[2].append('appended')
>>> d1
{1: [1], 2: [2, 'appended']}
>>> d2
{2: [2, 'appended']}

Это то же самое, что и копирование значения или создание с ним нового словаря, т.е.

>>> d3 = {1: d1[1]}
>>> d3[1].append('appended from d3')
>>> d1[1]
[1, 'appended from d3']