【发布时间】:2017-07-10 20:06:59
【问题描述】:
我有 2 个字典:
每个字典中的值应该都相等。
但是我不知道那个数字是多少...
dict1 = {'xx':A, 'yy':A, 'zz':A}
dict2 = {'xx':B, 'yy':B, 'zz':B}
N.B. A 不等于 B
N.B. A 和 B 实际上都是十进制数的字符串(例如 '-2.304998'),因为它们是从一个文本文件
我想创建另一个字典 - 有效地总结这些数据 - 但前提是每个字典中的所有值都相同。
即
summary = {}
if dict1['xx'] == dict1['yy'] == dict1['zz']:
summary['s'] = dict1['xx']
if dict2['xx'] == dict2['yy'] == dict2['zz']:
summary['hf'] = dict2['xx']
有没有一种简洁的方法可以在一行中做到这一点?
我知道可以使用推导式创建字典summary = {k:v for (k,v) in zip(iterable1, iterable2)}
但我正在努力处理底层的 for 循环和 if 语句......
我们将不胜感激。
我见过this question,但答案似乎都依赖于已经知道正在测试的值(即字典中的所有条目是否都等于已知数字)-除非我遗漏了什么。
【问题讨论】:
-
@user2696225 - 如果您正在查看十进制数字的字符串表示,请注意不同但表示相同数字的字符串,例如“10.0”与“10.000”。
标签: python python-3.x dictionary