给定两个字典,d1
和 d2
, 和一个整数 l
, 我想找到所有键 k
在 d1
这样d2[k]<l
或 k not in l
.我想输出d2
中的键和对应的值, 除非 d2
不包含 key ,我想打印 0。例如,如果 d1
是
a: 1
b: 1
c: 1
d: 1
和d2
是
a: 90
b: 89
x: 45
d: 90
和l
是 90,输出将是(可能以不同的顺序)
b 89
c 0
在 Python 中执行此操作的最佳方法是什么?我刚刚开始学习这门语言,到目前为止,这是我所拥有的:
for k in d1.keys():
if k not in d2:
print k, 0
else:
if d2[k]<l:
print k, d2[k]
这当然有效(除非我有打字错误),但在我看来,会有一种更 pythonic 的方式来做到这一点。
最佳答案
你的实际上很好——你可以将它简化为
for k in d1:
if d2.get(k, 0) < l:
print k, d2.get(k, 0)
这(对我来说)是 pythonic,并且几乎是对您的描述代码的直接“翻译”。
如果你想避免重复查找,你可以这样做
for k in d1:
val = d2.get(k, 0)
if val < l:
print k, val
关于python - 在 Python 中比较字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/434353/