Вопрос:

синтаксис для создания словаря в другой словарь в Python

python

161383 просмотра

3 ответа

2032 Репутация автора

Возможный Дубликат:
синтаксис для вставки одного списка в другой список в Python

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

Автор: Compuser7 Источник Размещён: 28.09.2010 10:38

Ответы (3)


8 плюса

272 Репутация автора

dict1 = {}

dict1['dict2'] = {}

print dict1

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

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

Автор: Blazer Размещён: 28.09.2010 10:42

101 плюса

138356 Репутация автора

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

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
Автор: kindall Размещён: 28.09.2010 10:46

3 плюса

16366 Репутация автора

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

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

Чтобы повторно ссылаться на значения одного словаря в другой, вы можете использовать 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']
Автор: intuited Размещён: 29.09.2010 12:49
Вопросы из категории :
32x32