我有兩個字典合併兩個字典與公共密鑰蟒和最小值
dict1[1]={ 'a':3 , 'b':2 , 'c':1 , 'd':5 }
dict1[2]={ 'a':2 , 'd':2 ,'e':2 }
現在我想用公共密鑰和公共密鑰的最小值兩者合併,作爲合併dict1後[1]和dict1 [2]
aftermerging={'a':2 , 'd':2}
建議我一個有效的方法來做到這一點。
我有兩個字典合併兩個字典與公共密鑰蟒和最小值
dict1[1]={ 'a':3 , 'b':2 , 'c':1 , 'd':5 }
dict1[2]={ 'a':2 , 'd':2 ,'e':2 }
現在我想用公共密鑰和公共密鑰的最小值兩者合併,作爲合併dict1後[1]和dict1 [2]
aftermerging={'a':2 , 'd':2}
建議我一個有效的方法來做到這一點。
您可以使用字典解析如果對方存在的關鍵,從一本詞典需要的物品,然後應用min
這兩個值:
d = { 'a':3 , 'b':2 , 'c':1 , 'd':5 }
c = { 'a':2 , 'd':2 ,'e':2 }
r = {k: min(v, d[k]) for k,v in c.items() if k in d}
print(r)
# {'a': 2, 'd': 2}
使用字典理解和設置操作:
{k:min(dict1[k],dict2[k]) for k in dict1.viewkeys() & dict2}
你可以在這裏使用'dict1.viewkeys()&dict2' ... –
@JonClements oooh,我學到了一些新東西,謝謝!答案已更新。 –
pytonic level:傳奇! –
dict1 = {}
dict1[1]={ 'a':3 , 'b':2 , 'c':1 , 'd':5 }
dict1[2]={ 'a':2 , 'd':2 ,'e':2 }
aftermerging = { x:min(dict1[1][x],dict1[2][x]) for x in set(dict1[1]) & set(dict1[2]) }
print aftermerging
>> {'a':2 , 'd':2}
這裏是你的問題要合併兩個d的解決方案python中的常用鍵和最小值的字典。
我打算把這個問題分成兩部分。
1)找到共同的密鑰。
2)使用這些公共密鑰來查找公共密鑰最小值。
找到共同鍵
In [1]: dict1 = { 'a':3 , 'b':2 , 'c':1 , 'd':5 }
In [2]: dict2 = { 'a':2 , 'd':2 ,'e':2 }
In [3]: common_keys = [key for key in dict1.keys() if key in dict2.keys()]
In [4]: common_keys
Out[4]: ['a', 'd']
使用這些共同鍵查找公共密鑰最小值。
In [5]: aftermerging = {}
In [6]: for i in range(0,len(common_keys)):
aftermerging[common_keys[i]] = min(dict1[common_keys[i]],dict2[common_keys[i]])
In [7]: aftermerging
Out[7]: {'a': 2, 'd': 2}
作業精準的他正在尋找'min()'。 – Delgan
'對於k,v在c.items()'我想,因爲有太多的值來解壓。 :) – Delgan