Rukovodstvo
статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
Как объединить два словаря в Python
Введение. Нередко в Python есть два словаря, которые вы хотели бы объединить. В этой статье мы рассмотрим различные способы объединения двух словарей в Python. Некоторые решения доступны не для всех версий Python, поэтому мы также рассмотрим способы слияния для выбранных выпусков. При объединении словарей мы должны учитывать, что произойдет, если два словаря будут иметь одинаковые ключи. Давайте сначала определим, что должно произойти при слиянии. Объединение словарей в P
Время чтения: 3 мин.
Вступление
Нередко в Python есть два словаря, которые вы хотели бы объединить. В этой статье мы рассмотрим различные способы объединения двух словарей в Python .
Некоторые решения доступны не для всех версий Python, поэтому мы также рассмотрим способы слияния для выбранных выпусков.
При объединении словарей мы должны учитывать, что произойдет, если два словаря будут иметь одинаковые ключи. Давайте сначала определим, что должно произойти при слиянии.
Объединение словарей в Python
Слияние обычно происходит справа налево, как dict_a <- dict_b . Если в обоих словарях есть общий ключник, значение второго словаря перезаписывает значение первого словаря.
Это можно продемонстрировать на приведенной ниже иллюстрации, где компоненты словаря B объединяются с A, причем зеленая масть словаря B занимает место оранжевой масти:
В этой статье мы будем использовать следующие словари.
- Словари со значениями:
- Словари с вложенными значениями:
Python 3.9 и выше
Начиная с версии Python 3.9, мы можем использовать операторы слияния (обозначенные | ) для объединения двух словарей:
Операторы слияния словарей также можно использовать вместо вложенных словарей. Здесь происходит полная перезапись значения совпадающего ключа:
Python 3 и выше
Для более ранних версий Python 3 мы, к сожалению, не можем использовать операторы слияния. Вместо этого мы можем объединить оба словаря, используя ** двойные звездочки, внутри другого словаря, как показано ниже:
То же самое и со словарями со значениями вложенных списков. Значения перекрывающихся ключей будут перезаписаны следующим образом:
Python 2 и выше
В устаревших версиях Python приведенные выше фрагменты не будут работать. Вместо этого слияние можно облегчить, объединив элементы словаря или dict_items обеих переменных.
Мы также можем использовать словарные методы copy() и update() Наконец, мы можем перебрать элементы словаря и использовать метод extend() чтобы добавить его в другой словарь.
Использование items ()
Начнем с объединения с items() :
Приведенный выше синтаксис подходит для простых значений. Для вложенного словаря, содержащего значения списка, items() необходимо преобразовать в list() а затем объединить:
Это решение работает хорошо, потому что ключи были числовыми, оригинальные ключи были сохранены. Для ключей разных типов вы бы предпочли следующий вариант.
Использование обновления словаря ()
Другой способ выполнить слияние — скопировать один из словарей и обновить его другим, как показано ниже:
Добавление значений списка во все версии Python
В предыдущих разделах мы перезаписали вложенные значения объединенных словарей. Бывают случаи, когда вложенные значения нужно добавлять, а не перезаписывать.
Это можно сделать с помощью extend() как показано ниже:
Заключение
В этой статье мы узнали, как работает слияние словарей, и как мы можем объединить два словаря в разных версиях Python. Объединение словарей может быть очень удобно в таких ситуациях, как чтение нескольких файлов JSON, построение карты объектов или даже построение индексов контента.
Объединение двух словарей в Python – 11 способов
Словарь Python – это структура данных, которая содержит все элементы в парах ключ-значение. Каждая пара “ключ-значение” сопоставляет ключи с их ассоциативным значением. Следовательно, он также известен как ассоциативный массив словаря Python. Все элементы словаря заключены в фигурные скобки <>. Кроме того, мы используем символ двоеточия(:) между парами ключ-значение, которые отделяют каждый ключ от его ассоциативного значения.
Элементы словаря могут быть расположены в любом порядке и динамически изменены в программе Python. В этом разделе мы узнаем, как объединить два словаря в Python, используя различные.
Объединение двух словарей с помощью цикла for
Здесь мы используем цикл For, который выполняет итерацию по первому словарю и одновременно добавляет записи в другой словарь для их объединения.
Рассмотрим программу для объединения заданных словарей с помощью цикла For.
Соединение словарей с помощью метода update()
Метод update() используется в Python для обновления текущего словаря содержимым второго словаря. Используя метод update(), мы можем избежать создания третьего словаря для хранения первого элемента словаря и последующего обновления второго элемента словаря.
Рассмотрим программу для объединения заданных словарей на Python без создания третьего словаря.
Объединение с помощью функции
Давайте рассмотрим программу для объединения заданных словарей в Python с использованием метода update() в функции.
Использование метода update(), когда оба словаря имеют одинаковые ключи
Давайте рассмотрим программу для объединения заданных словарей в Python с использованием метода update(), когда оба словаря содержат одинаковые ключи.
У нас есть два одинаковых ключа (Actress и Basketball) в обоих словарях. Когда мы выполняем метод обновления, последнее значение второго словаря переопределяет старые значения первого словаря. Когда словарь d1 выполняется, он печатает значения Washington и Elizabeth для ключей Actress и Basketball вместо Jasmine Wiley и Jordan.
С помощью метода Copy() и Update()
В этом методе мы копируем все элементы первого словаря(d1) с помощью функции copy(), а затем назначаем скопированные данные другому словарю(d3). После этого мы обновляем словарь d3 словарем d2 с помощью функции update().
Давайте рассмотрим программу для объединения заданных словарей с использованием методов copy и update() в Python.
Объединение двух словарей с помощью оператора ** – оператора распаковки
Оператор распаковки, используемый для объединения двух или более словарей в одном выражении и сохранения их в третьем словаре.
Рассмотрим программу для объединения заданных словарей с помощью оператора ** в Python.
С помощью конструктора dict()
Метод конструктора dict() аналогичен методам copy() и update() в Словаре Python. Конструктор dict() копирует первые элементы словаря в новый словарь, а затем выполняет метод update(), чтобы обновить новый словарь вторым элементом словаря.
Давайте рассмотрим программу для объединения заданных словарей с помощью метода dict() в Python.
Конструктор dict() и ** kwargs
Это сокращенный метод конструктора dict(), который использует оператор kwargs(**) для сопоставления одного словаря с другим с помощью метода dict().
Рассмотрим программу для объединения двух словарей с помощью конструктора dict() и оператора ** kwargs в Python.
Используя функцию Collections – ChainMap
ChainMap – это набор из нескольких словарей, которые возвращают один словарь. Это более быстрый метод создания нового словаря и запуска нескольких файлов по сравнению с методом update(). Чтобы объединить два словаря в Python, нам нужно импортировать ChainMap из коллекций. В функции ChainMap() мы передаем два словаря в качестве аргумента, который возвращает экземпляры ChainMap для сопоставления словарей с помощью конструктора dict() для объединения словарей.
Давайте рассмотрим программу для объединения двух словарей с помощью функции ChainMap в Python.
Объединение словарей с помощью метода itertools – chain()
Он создает итеративный словарь, который возвращает элемент из первого итеративного словаря до его завершения. А затем он переходит к следующей итерации для дальнейшего выполнения в словаре. Следовательно, он представляет последовательные последовательности как единую последовательность.
Давайте рассмотрим программу для объединения двух словарей с помощью функции цепочки в Python.
Оператор слияния(|)
Оператор слияния(|) также используется для слияния двух словарей в Python. Python 3.9 представил оператор слияния(|) в классе dict.
Напишем программу для объединения двух словарей на Python с помощью оператора слияния(|).
Объединить два словаря в Python
В этом посте мы обсудим, как объединить два словаря в Python.
1. Использование update() функция
Идеальным решением для обновления словаря парами ключ/значение из другого словаря является использование update() функция. Следующий пример демонстрирует использование этой функции.
Однако обратите внимание, что эта функция перезапишет существующие ключи в родительском словаре.
2. Использование оператора распаковки словаря
Другой вариант Pythonic — использовать оператор распаковки словаря ( ** ) с пониманием словаря. Этот синтаксис был предложен в PEP 448 и представлен в Python 3.5. Обратите внимание, что это возвращает новый словарь.
В качестве альтернативы вы можете использовать конструктор словаря вместо понимания словаря, который требует распаковки только второго словаря.
3. Использование itertools.chain() функция
Другой подход заключается в использовании itertools.chain функция, которая часто используется для обработки последовательных последовательностей как единой последовательности. Вы можете получить новый словарь, передав возвращаемый итератор конструктору словаря.
Если вам нужно объединить список словарей в один словарь, вы можете использовать chain.from_iterable функция.
4. Преобразование в список
Наконец, вы можете преобразовать оба элемента словаря в список пар, а затем передать список конструктору словаря, чтобы получить новый словарь.
Это все, что касается слияния двух словарей в Python.
Оценить этот пост
Средний рейтинг 5 /5. Подсчет голосов: 20
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования