Добавляя словари вместе, Python

У меня есть два словаря, и я бы хотел сделать их одним:

Что-то вроде этого псевдо-питона было бы неплохо:

dic0 = {'dic0': 0} dic1 = {'dic1': 1} ndic = dic0 + dic1 # ndic would equal {'dic0': 0, 'dic1': 1} 

6 Solutions collect form web for “Добавляя словари вместе, Python”

Если вы заинтересованы в создании нового 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

 dic0.update(dic1) 

Если ваш НЕ нормально изменить dic0

 ndic = dic0.copy() ndic.update(dic1) 

Если все ключи в одном типе гарантированы быть строками (в этом случае dic1 , конечно, args можно поменять местами)

 ndic = dict(dic0, **dic1) 

В некоторых случаях может быть удобно использовать утилиты dict (Python 2.7 или новее),
Особенно, если вы хотите отфильтровывать или преобразовывать некоторые клавиши / значения одновременно.

 ndic = {k: v for d in (dic0, dic1) for k, v in d.items()} 
  • добавить один и тот же элемент в несколько подписок в python
  • list append дает None как результат
  • TypeError: только целые массивы с одним элементом могут быть преобразованы в индекс 3
  • Pythonic способ добавления вывода функции в несколько списков
  • Используйте python для циклического перехода по двум спискам, используя один в качестве индекса в список списков, а другой как значение для добавления
  • Чтение и добавление определенного содержимого
  • добавить новую строку в старый файл csv python
  • Неудачное добавление в пустой массив NumPy
  • Python - лучший язык программирования в мире.