Есть ли хороший, сжатый/встроенный способ увидеть, являются ли все значения в итерабельном нули? Прямо сейчас я использую all() с небольшим пониманием списка, но (для меня) кажется, что должен быть более выразительный метод. Я бы рассматривал это как несколько эквивалентное memcmp() в C.
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, и я просто ослеп, или я должен просто придерживаться своей первоначальной версии?
Update
Я не предполагаю, что allcmp() является решением. Это пример того, что, по моему мнению, может быть более значимым. Это не то место, где я бы предложил новые встроенные модули для Python.
По-моему, all() не имеет смысла. Он не выражает, что "все" проверяет. Вы можете предположить, что all() выполняет итерацию, но не выражает то, что ищет функция (итерабельность bool, которая проверяет их все на True). То, что я прошу, это некоторая функция, например my allcmp(), которая принимает два параметра: итерабельное и сравнительное значение. Я спрашиваю, есть ли встроенная функция, которая делает что-то похожее на мой сделанный allcmp().
Я назвал мой allcmp() из-за моего фона C и memcmp(), имя моей созданной функции не имеет значения здесь.