Иногда при работе со словарями Python у нас может возникнуть проблема, при которой нам необходимо выполнить обновление словаря с помощью других ключей словаря. Это может иметь приложения в доменах, в которых нам нужно добавить определенные записи к ранее записанным записям. Давайте обсудим некоторые способы, с помощью которых эта задача может быть выполнена.
Метод № 1 : Использование цикла
Это грубый способ выполнения этой задачи. В этом случае мы проверяем наличие ключей в другом словаре и добавляем элементы в новый словарь.
# Python3 code to demonstrate working of
# Update dictionary with other dictionary
# Using loop
# initializing dictionaries
test_dict1 = {'gfg' : 1, 'best' : 2, 'for' : 4, 'geeks' : 6}
test_dict2 = {'for' : 3, 'geeks' : 5}
# printing original dictionaries
print("The original dictionary 1 is : " + str(test_dict1))
print("The original dictionary 2 is : " + str(test_dict2))
# Update dictionary with other dictionary
# Using loop
for key in test_dict1:
if key in test_dict2:
test_dict1[key] = test_dict2[key]
# printing result
print("The updated dictionary is : " + str(test_dict1))
Выход:
Оригинальный словарь-это 1 : {‘best’: 2, ‘for’: 4, ‘gfg’: 1, ‘geeks’: 6}
оригинальной словарь 2 это : {‘for’: 3, ‘geeks’: 5}
обновленные словарь : {‘best’: 2, ‘for’: 3, ‘gfg’: 1, ‘geeks’: 5}
Метод № 2 : Использование понимания словаря
Это еще один способ, которым можно выполнить эту задачу. В этом случае мы выполняем итерацию для словаря и выполняем обновление в одной строке, используя понимание.
# Python3 code to demonstrate working of
# Update dictionary with other dictionary
# Using dictionary comprehension
# initializing dictionaries
test_dict1 = {'gfg' : 1, 'best' : 2, 'for' : 4, 'geeks' : 6}
test_dict2 = {'for' : 3, 'geeks' : 5}
# printing original dictionaries
print("The original dictionary 1 is : " + str(test_dict1))
print("The original dictionary 2 is : " + str(test_dict2))
# Update dictionary with other dictionary
# Using dictionary comprehension
res = {key : test_dict2.get(key, val) for key, val in test_dict1.items()}
# printing result
print("The updated dictionary is : " + str(res))
Выход:
Исходный словарь 1 : {‘best’: 2, ‘for’: 4, ‘gfg’: 1, ‘geeks’: 6}
Исходный словарь 2 таков : {‘for’: 3, ‘geeks’: 5}
Обновленный словарь : {‘best’: 2, ‘for’: 3, ‘gfg’: 1, ‘geeks’: 5}