Как объединить словари в Python

Как объединить словари в Python Статьи

Введение

В ходе статьи разберём различные способы объединить словари в языке программирования Python.

Объединение словарей в Python 3.9+

Начиная с версии Python 3.9 появилась возможность объединить два словаря при помощи оператора слияния (|).

x = {'a': 10, 'b': 8}
y = {'c': 6, 'd': 4}

z = x | y

print(z)

# Вывод: {'a': 10, 'b': 8, 'c': 6, 'd': 4}

Объединение словарей в Python 3.5-3.8

В версиях Python начиная с 3.5, по 3.9 предыдущий способ к сожалению не работал. Вместо оператора слияния используется распаковка обоих словарей при помощи двойных звёздочек (**):

x = {'a': 10, 'b': 8}
y = {'c': 6, 'd': 4}

z = {**x, **y}

print(z)

# Вывод: {'a': 10, 'b': 8, 'c': 6, 'd': 4}

Использование методов copy() и update()

В данном способе мы методом copy() копируем первый словарь в z, после чего обновляем получившийся словарь z методом update(), тем самым добавляя в него значения второго словаря:

x = {'a': 10, 'b': 8}
y = {'c': 6, 'd': 4}

z = x.copy()
z.update(y)

print(z)

# Вывод: {'a': 10, 'b': 8, 'c': 6, 'd': 4}

Также можно было обойтись без создания нового словаря, а добавить в первый данные из второго:

x = {'a': 10, 'b': 8}
y = {'c': 6, 'd': 4}

x.update(y)
print(x)

# Вывод: {'a': 10, 'b': 8, 'c': 6, 'd': 4}

Использование метода items()

В данном способе мы добавляем данные из первого и второго словаря в списки с кортежами. Далее мы их складываем оператором сложения (+) и преобразовываем в словарь:

x = {'a': 10, 'b': 8}
y = {'c': 6, 'd': 4}
z = dict(list(x.items()) + list(y.items()))

print(z)

# Вывод: {'a': 10, 'b': 8, 'c': 6, 'd': 4}

Получается, что словарь x превращается в список кортежей — [(‘a’, 10), (‘b’, 8)].
Словарь y тоже превращается в список кортежей — [(‘c’, 6), (‘d’, 4)].

И т.к. они находятся в скобках функции dict() получается такая картина:

z = dict([('a', 10), ('b', 8)] + [('c', 6), ('d', 4)])

Ну и как мы знаем, функция dict() преобразовывает их в словарь.

Заключение

В ходе статьи мы с Вами научились объединять словари в Python различными способами. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start