Создать словарь из ключей одного словаря и соответствующих значений другого словаря python - PullRequest
1 голос
/ 01 мая 2020

У меня есть два словаря, один примерно такой:

dict1 = {'1': ['1000', '2000', '3000']}

, а другой:

dict2 = {'1000': ['12', '13', '14'], '2000': ['15', '16', '17'], '3000': ['18', '19', '20']}

Есть ли способ создать новый словарь, который будет выглядеть так: это?:

dict3 = {'1':[['12', '13', '14'], ['15', '16', '17'], ['18', '19', '20']]}

Ответы [ 2 ]

3 голосов
/ 01 мая 2020

Вы можете сделать это, используя список и словарь:

dict3 = {k:[dict2[i] for i in v] for k,v in dict1.items()}
print(dict3) # output: {'1': [['12', '13', '14'], ['15', '16', '17'], ['18', '19', '20']]}
1 голос
/ 01 мая 2020

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

dict1 = {'1': ['1000', '2000', '3000']}
dict2 = {'1000': ['12', '13', '14'], '2000': ['15', '16', '17'], '3000': ['18', '19', '20']}

dict3 = {key: [dict2[value] for value in dict1[key]] for key in dict1}
print(dict3)

Вывод:

{'1': [['12', '13', '14'], ['15', '16', '17'], ['18', '19', '20']]}

Внешняя интерпретация диктов перебирает ключи в dict1.

Понимание внутреннего списка строит значение этой записи, собирая все значения из dict2, на которые ссылается список ключей dict2, приведенных в dict1.

...