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

Python предлагает несколько способов эффективного решения этой задачи.

Мы рассмотрим восемь стандартных методов с примерами кода, которые демонстрируют, как объединять словари в Python.

Способ 1: Использование метода update()

Метод update() — это простой и понятный способ объединить два или более словарей. Он обновляет вызывающий словарь парами ключ-значение из предоставленных словарей. Давайте посмотрим на пример:

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
dict1.update(dict2)
print(dict1)

Выход:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

Способ 2: использование оператора двойной звездочки (**)

Оператор двойной звездочки (**) можно использовать для краткого объединения словарей. Он распаковывает словари и объединяет их в новый словарь. Вот пример:

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged_dict = {**dict1, **dict2}
print(merged_dict)

Выход:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

Способ 3: Использование словарного понимания

Понимание словаря позволяет нам объединять словари, используя компактный синтаксис. Он перебирает предоставленные словари и создает новый словарь, комбинируя их пары ключ-значение. Давайте посмотрим на пример:

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged_dict = {**dict1, **dict2}
print(merged_dict)

Выход:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

Способ 4: использование функции chain() из itertools

Функцию chain() из модуля itertools можно использовать для объединения словарей путем объединения их в цепочку. Он принимает несколько словарей в качестве аргументов и возвращает итератор, который создает пары ключ-значение из всех словарей. Вот пример:

from itertools import chain
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged_dict = dict(chain(dict1.items(), dict2.items()))
print(merged_dict)

Выход:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .