【发布时间】:2019-07-24 18:37:50
【问题描述】:
我有多个字典和一个基本字典。我需要遍历字典键,并且需要在每次迭代中检查现有键和新键,但是在每次迭代中,我需要组合字典的所有先前键并检查当前字典键,例如
dict10 = {'A':1, 'C':2} #base dictionary
dict11 = {'B':3, 'C':4}
dict12 = {'A':5, 'E':6, 'F':7}
这里是计算过程
Exist_Score = (dict11.keys() & dict10.keys() 中的键值) + (dict12.keys() 中的键值 & (dict11.keys() + dict10.keys()))
New_score = (dict11.keys() 中的键值 - dict10.keys()) + (dict12.keys() 中的键值 - (dict11.keys() + dict10.keys()))
我的手动计算分数的方法
exist_score = 0
new_score = 0
for key in dict11.keys() & dict10.keys():
exist_score += dict11[key]
for key in dict12.keys() & set(dict11.keys()).union(set(dict10.keys())):
exist_score += dict12[key]
for key in dict11.keys() - dict10.keys():
new_score += dict11[key]
for key in dict12.keys() - set(dict11.keys()).union(set(dict10.keys())):
new_score += dict12[key]
print(exist_score)
print(new_score)
对于给定的示例,分数将
Exist_Score = 4 + 5
New_Score = 3 + (6 + 7)
如何针对动态数量的列表实现这一点并迭代组合列表以检查键?
【问题讨论】:
-
Exist_Score和New_score是使用非 Python 代码计算的。因此,我不知道您要计算什么,因此无法帮助扩展此功能 -
对不起,这不是python代码我只是解释了它应该如何实现计算分数
-
前两个字典的共同键是C,dict10和dict11的值不同。您是否总是想在所有这些操作中获取第二个字典中的字典值?
-
@alkasm 我总是取当前字典的值。例如,如果我使用 dict11,那么我将使用该 dict 中的值。
-
您如何检索存在分数的 4 和 5 的值。它似乎是在dict10和dict 11的交集内取最大值+dict12和(dict11+dict10)的并集的交集的最大值?
标签: python python-3.x dictionary