[英]is it possible to compare two dictionary and if the keys are the same then its values will add together
我想知道如何比較 python 中的 2 個字典以啟用並創建 1 個字典,如果兩個字典恰好具有相同的鍵,那么它將是新字典中的 1 個鍵,並且將添加相同鍵的值一起,將是 1 鍵的新值,例如。
def view_cart():
if shopping_cart.keys() in shopping_cart_2.keys:
new_shop = shopping_cart.values + shopping_cart_2.values
print(new_shop)
shopping_cart = {'milk': 1, 'eggs': 1, 'bread': 2}
shopping_cart_2 = {'milk': 1 ,'coke': 3, 'oyster sauces': 1}
將兩組鍵組合成set
並取並集; 然后迭代該聯合集並添加每個字典的計數。
>>> shopping_cart = {'milk': 1, 'eggs': 1, 'bread': 2}
>>> shopping_cart_2 = {'milk': 1 ,'coke': 3, 'oyster sauces': 1}
>>> {key: shopping_cart.get(key, 0) + shopping_cart_2.get(key, 0) for key in set(shopping_cart) | set(shopping_cart_2)}
{'coke': 3, 'milk': 2, 'eggs': 1, 'bread': 2, 'oyster sauces': 1}
是的。 你可以這樣做。
python 中有一個數據結構類型Set ,它是數學概念Sets的對應物。 您可以使用它來創建兩個字典中所有不同鍵的列表。
shopping_cart = {'milk': 1, 'eggs': 1, 'bread': 2}
shopping_cart_2 = {'milk': 1 ,'coke': 3, 'oyster sauces': 1}
d1k = set(shopping_cart)
d2k = set(shopping_cart_2)
allKeys = d1k | d2k
現在您可以在for循環中使用簡單的if..else語句。
for i in allKeys:
if i not in shopping_cart_2:
pass
elif i not in shopping_cart:
shopping_cart[i] = shopping_cart_2[i]
else:
shopping_cart[i] += shopping_cart_2[i]
上面的代碼通過修改原始的shopping_cart字典來創建最終需要的字典。 現在您可以刪除shopping_cart_2字典。
del shopping_cart_2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.