Объединение списка и нескольких словарей во вложенный словарь — python

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

Вход:

l = [key1, key2, key3]

d1 = {string11:value11, string12:value12, string13:value13}
d2 = {string21:value21, string22:value22, string23:value23}
d3 = {string31:value31, string32:value32, string33:value33}

Выход:

{key1 : {string11:value11, string12:value12, string13:value13}, key2 : {string21:value21, string22:value22, string23:value23}, key3 : {string31:value31, string32:value32, string33:value33}}

До сих пор я пытался сжать список и словарь, но это создает еще один словарь, а не вложенный словарь.

ld = dict(zip(l,d))

Нужно ли сначала создать список d1, d2, d3? Как я могу объединить l и список диктовок тогда?

ld = dict(zip(l,[d1, d2, d3]))
cs95 17.12.2020 17:45

Почему у вас так много переменных с одинаковой структурой dict? Почему бы просто не создать их как вложенный дикт?

JeffUK 17.12.2020 17:45
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
295
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Да, вам нужно сначала создать список d

dict(zip(l, [d1, d2, d3]))

Когда вы передаете словарь в качестве итератора, его значения будут повторяться (ключи не будут включены). Следовательно, почему dict(zip(l, d1)) создаст один словарь, а не вложенный.

Есть много способов. Например, вы можете использовать понимание dict:

ld = {k: d for k, d in zip(l, [d1, d2, d3])}

Другие вопросы по теме