Добавляя словари вместе, 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
  • Элемент добавления python lxml после другого элемента
  • Как вы добавляете файл?
  • Добавление списка или серии в pandas DataFrame в виде строки?
  • Python append () vs. + operator в списках, почему они дают разные результаты?
  • Python, подсчеты для сравнения и составление списка
  • Добавление словаря в список в aa loop Python
  • list append дает None как результат
  • Python добавляет несколько файлов в заданном порядке в один большой файл
  • Pythonic способ добавления вывода функции в несколько списков
  • При добавлении словаря в список, dict. а не по новой строке каждый раз
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.