python程序员如何检查字典的任何值是否匹配条件(大于0
就我而言)。我正在寻找对性能影响最小的最“Pythonic”方式。
我的字典:
pairs = { 'word1':0, 'word2':0, 'word3':2000, 'word4':64, 'word5':0, 'wordn':8 }
到目前为止我使用了这两种(可怕的?)方法。
1:
options = pairs.values() # extract values
for i in options:
if i > 0:
return True
return False
2:
options = sorted(pairs.items(), key=lambda e: e[1], reverse=True) # rank from max to min
if options[0][1] > 0:
return True
else:
return False
您可以使用any
[docs] http://docs.python.org/library/functions.html#any:
>>> pairs = { 'word1':0, 'word2':0, 'word3':2000, 'word4':64, 'word5':0, 'wordn':8 }
>>> any(v > 0 for v in pairs.itervalues())
True
>>> any(v > 3000 for v in pairs.itervalues())
False
也可以看看all
[docs] http://docs.python.org/library/functions.html#all:
>>> all(v > 0 for v in pairs.itervalues())
False
>>> all(v < 3000 for v in pairs.itervalues())
True
由于您使用的是 Python 2.7,.itervalues()
可能比.values()
因为它不会创建新列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)