Я пытаюсь создать код, который объединит 3 словаря разницы (два других словаря в первый основной словарь.), Когда есть дубликаты ключей при сохранении значений. Я в настоящее время застрял в точке, где я нахожу дубликаты, и мне сложно добавить их в newDict или d1. Может ли кто-нибудь помочь мне, чтобы каждый дубликат стал somekind объекта, где я могу передать его для добавления в новый словарь, содержащий все остальные ключи? Спасибо.Слияние словарей с дубликатами в python
d1 = {'Norton': '408-771-7231', 'Edward': '415-669-7234', 'Julia':'510-669-7723'}
# Phone number information/"newDict"
d2 = {'Norton': '12345 El Monte Road', 'James': '4236 Capitol Expressway', 'Mary': '6345 Mia Circle'}
# Address information
d3 = {'Norton': 'Male', 'James': 'Male', 'John': 'Male', 'Elizabeth': 'Female'}
# Gender Information
newDict = d1
# d1 will act as the main dictionary and retain all of it's entries and receive entries.
newDictKeys=newDict.keys()
d1Keys=d1.keys()
d2Keys=d2.keys()
d3Keys=d3.keys()
allKeys = [d2Keys, d3Keys] # Left out d1Keys since it will retain it's entries.
print('Printing original dictionary entries...','\n','d1 =', d1, '\n', 'd2 =', d2, '\n', 'd3 =', d3, '\n')
print('Cross referencing keys from d1 with d2Keys and d3Keys...')
tempList = []
def addToDictForSameKey(comboDictionary, addOnDictionary, key):
return None
for keysOfDictX in allKeys:
for keyX in keysOfDictX:
print('\nChecking key:', keyX)
for keyY in newDict:
print('With this key in newDict:', keyY)
if keyX == keyY: # check for identical keys
addToDictForSameKey(newDict, d2, keyX)
print('Found Duplicate', keyX, 'with', keyY, 'in', keysOfDictX)
print('adding to newDict')
break
else:
continue
print('\n', newDict)
Выход:
Printing original dictionary entries...
d1 = {'Norton': '408-771-7231', 'Edward': '415-669-7234', 'Julia': '510-669-7723'}
d2 = {'Norton': '12345 El Monte Road', 'James': '4236 Capitol Expressway', 'Mary': '6345 Mia Circle'}
d3 = {'Norton': 'Male', 'James': 'Male', 'John': 'Male', 'Elizabeth': 'Female'}
Cross referencing keys from d1 with d2Keys and d3Keys...
Checking key: Norton
With this key in newDict: Norton
Found Duplicate Norton with Norton in dict_keys(['Norton', 'James', 'Mary'])
adding to newDict
Checking key: James
With this key in newDict: Norton
With this key in newDict: Edward
With this key in newDict: Julia
Checking key: Mary
With this key in newDict: Norton
With this key in newDict: Edward
With this key in newDict: Julia
Checking key: Norton
With this key in newDict: Norton
Found Duplicate Norton with Norton in dict_keys(['Norton', 'James', 'John', 'Elizabeth'])
adding to newDict
Checking key: James
With this key in newDict: Norton
With this key in newDict: Edward
With this key in newDict: Julia
Checking key: John
With this key in newDict: Norton
With this key in newDict: Edward
With this key in newDict: Julia
Checking key: Elizabeth
With this key in newDict: Norton
With this key in newDict: Edward
With this key in newDict: Julia
{'Norton': '408-771-7231', 'Edward': '415-669-7234', 'Julia': '510-669-7723'}
Process finished with exit code 0
Я хочу, чтобы выход выглядеть следующим образом:
{['Norton': '408-771-7231', '12345 El Monte Road', 'Male'] ['Edward': '415-669-7234'] ['Julia': '510-669-7723']
['James': '4325 Capitol Expressway', 'Male'] ['Mary': '6345 Mia Circle'] ['John': 'Male'] ['Elizabeth':'Female']}
В основном все (или, по крайней мере, только дублированные записи) быть в списке, который находится внутри словаря в одном заявлении печати.
Что бы вы хотели выход выглядеть? Приведите пример с * Norton * –
обновленный желаемый результат – Burntrees4201