Есть ли хороший, сжатый/встроенный способ увидеть, являются ли все значения в итерабельном нули? Прямо сейчас я использую 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()
, имя моей созданной функции не имеет значения здесь.