python中字典比较的一种衬垫

cra*_*uce -2 python python-3.x

下面代码的一行是什么?

for k,v in d2.items():
    if d1.get(k,0) < v:
        return False
return True
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它的语法无效。

return False if d1.get(k,0)<v for k,v in d2.items() else True
Run Code Online (Sandbox Code Playgroud)

为什么?

wja*_*rea 5

使用anyall

return not any(d1.get(k, 0) < v for k, v in d2.items())
Run Code Online (Sandbox Code Playgroud)

或者

return all(d1.get(k, 0) >= v for k, v in d2.items())
Run Code Online (Sandbox Code Playgroud)

  • 有什么理由选择“不是任何”而不是“全部”? (2认同)