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