给定两个字典d1
和d2
,以及一个整数l
,我想在d1
中找到所有键k
,以便d2[k]<l
或k not in l
。我想在d2
中输出键和相应的值,除非d2
不包含键,我想打印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]
当然可以(除非我有错别字),但在我看来,会有一种更像Python的方式来做这件事。
这是一个紧凑的版本,但你的完全可以:
输出:
你的其实很好——你可以把它简化成
对我来说,这是一种Python,几乎是直接“翻译”成你描述的代码。
如果你想避免双重查找,你可以
您可以使用defaultdict来简化这个过程。在defaultdict上调用getitem将返回“default”值。
你可以改变的另一点是不要叫钥匙。字典实现了iter。最好是简单地写下:
相关问题 更多 >
编程相关推荐