是否有一种简洁/内置的好方法来查看可迭代对象中的所有值是否都为零?现在我正在使用all()
一些列表理解,但是(对我来说)似乎应该有一种更具表现力的方法。我认为这在某种程度上等同memcmp()
于 C中的 a。
values = (0, 0, 0, 0, 0)
# Test if all items in values tuple are zero
if all([ v == 0 for v in values ]) :
print 'indeed they are'
我希望有一个内置函数可以执行以下操作:
def allcmp(iter, value) :
for item in iter :
if item != value :
return False
return True
该功能是否存在于python中而我只是盲目的,还是应该坚持使用我的原始版本?
更新
我并不是说这allcmp()
是解决方案。这是我认为可能更有意义的一个例子。这不是我建议新的 Python 内置插件的地方。
在我看来,all()
是不是很有意义。它没有表达“所有”正在检查的内容。您可以假设这all()
需要一个可迭代对象,但它并没有表达函数正在寻找什么(bool
测试所有函数的可迭代对象 s True
)。我要的是一些像我allcmp()
这样的函数,它需要两个参数:一个可迭代的和一个比较值。我在问是否有一个内置函数可以做类似于我的 make up allcmp()
。
allcmp()
由于我的 C 背景,memcmp()
我打电话给我的,我的组合函数的名称在这里无关紧要。