2024-04-29 09:53:02 发布
网友
假设给您两个字典,A和B,它们的键可以相同,但值(整数)将不同。如何比较这两个字典,以便如果密钥匹配,则得到差异(例如,如果x是来自密钥"A"的值,而y是来自密钥"B"的值,则结果应该是两个字典之间的x-y)(最好作为新字典)。
A
B
x
"A"
y
"B"
x-y
理想情况下,您还可以比较以百分比表示的增益(这两个字典是特定时间的数字快照,它们之间的值按百分比变化了多少)。
您可以使用dict理解循环键,然后从每个原始的dict中减去相应的值。
dict
>>> a = {'a': 5, 'b': 3, 'c': 12} >>> b = {'a': 1, 'b': 7, 'c': 19} >>> {k: b[k] - a[k] for k in a} {'a': -4, 'b': 4, 'c': 7}
这假设两个dict具有完全相同的键。否则,如果一个dict中有键,而不是另一个(可能是一些默认值?)
否则,如果只想计算共享键,可以使用键的集合交集
>>> {k: b[k] - a[k] for k in a.keys() & b.keys()} {'a': -4, 'b': 4, 'c': 7}
def difference_dict(Dict_A, Dict_B): output_dict = {} for key in Dict_A.keys(): if key in Dict_B.keys(): output_dict[key] = abs(Dict_A[key] - Dict_B[key]) return output_dict >>> Dict_A = {'a': 4, 'b': 3, 'c':7} >>> Dict_B = {'a': 3, 'c': 23, 'd': 2} >>> Diff = difference_dict(Dict_A, Dict_B) >>> Diff {'a': 1, 'c': 16}
如果你想把这些都放在一条线上,那就是。。。
def difference_dict(Dict_A, Dict_B): output_dict = {key: abs(Dict_A[key] - Dict_B[key]) for key in Dict_A.keys() if key in Dict_B.keys()} return output_dict
给定两个字典A和B,它们可能/可能具有相同的键,可以执行以下操作:
A = {'a':5, 't':4, 'd':2} B = {'s':11, 'a':4, 'd': 0} C = {x: A[x] - B[x] for x in A if x in B}
它只减去两个词典中相同的键。
您可以使用
dict
理解循环键,然后从每个原始的dict
中减去相应的值。这假设两个
dict
具有完全相同的键。否则,如果一个dict
中有键,而不是另一个(可能是一些默认值?)否则,如果只想计算共享键,可以使用键的集合交集
如果你想把这些都放在一条线上,那就是。。。
给定两个字典
A
和B
,它们可能/可能具有相同的键,可以执行以下操作:它只减去两个词典中相同的键。
相关问题 更多 >
编程相关推荐