У меня есть два словаря, и я хотел бы сделать их одним:
Что-то вроде этого псевдо-Python было бы хорошо:
dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
ndic = dic0 + dic1
# ndic would equal {'dic0': 0, 'dic1': 1}
У меня есть два словаря, и я хотел бы сделать их одним:
Что-то вроде этого псевдо-Python было бы хорошо:
dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
ndic = dic0 + dic1
# ndic would equal {'dic0': 0, 'dic1': 1}
Если вы заинтересованы в создании нового dict без использования промежуточного хранилища: (это быстрее и, на мой взгляд, более чистое, чем использование dict.items())
dic2 = dict(dic0, **dic1)
Или если вы счастливы использовать один из существующих dicts:
dic0.update(dic1)
>>> dic0 = {'dic0':0}
>>> dic1 = {'dic1':1}
>>> ndic = dict(dic0.items() + dic1.items())
>>> ndic
{'dic0': 0, 'dic1': 1}
>>>
Вы ищете метод
dic0.update( dic1 )
print( dic0 )
дает
{'dic0': 0, 'dic1': 1}
dic0.update(dic1)
Обратите внимание, что это фактически не возвращает объединенный словарь, он просто мутирует dic0
.
Пожалуйста, найдите сайт, прежде чем задавать вопросы в следующий раз: как объединить два словаря для создания нового в Python?
Самый простой способ сделать это - просто использовать свой примерный код, но используя элемент items() каждого словаря. Таким образом, код будет выглядеть следующим образом:
dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
dic2 = dict(dic0.items() + dic1.items())
Я тестировал это в IDLE, и он отлично работает. Однако в предыдущем вопросе по этому вопросу говорится, что этот метод медленный и пережевывает память. Есть несколько других способов, рекомендованных там, поэтому, пожалуйста, посмотрите, важно ли использование памяти.
Вот несколько способов добавления словарей.
Создает новый dict, добавляя оба элемента.
ndic = dict(dic0.items() + dic1.items())
Если вы хотите изменить dic0
dic0.update(dic1)
Если ваш НЕ ОК, чтобы изменить dic0
ndic = dic0.copy()
ndic.update(dic1)
Если все ключи в одном dict гарантируются как строки (dic1
в этом случае, конечно, аргументы могут быть заменены)
ndic = dict(dic0, **dic1)
В некоторых случаях может быть удобно использовать утилиты dict (Python 2.7 или новее), особенно если вы хотите отфильтровывать или преобразовывать несколько ключей/значений одновременно.
ndic = {k: v for d in (dic0, dic1) for k, v in d.items()}