Pythonic способ проверить: все элементы оцениваются в False -OR- все элементы оцениваются в True

Я хочу, чтобы результаты функции были следующими:

  • Все значения оцениваются как False (Нет, 0, пустая строка) -> True
  • Все значения имеют значение True -> True
  • Каждый другой случай -> False

Это моя попытка:

>>> def consistent(x): ... x_filtered = filter(None, x) ... return len(x_filtered) in (0, len(x)) ... >>> consistent((0,1)) False >>> consistent((1,1)) True >>> consistent((0,0)) True 

[Bonus]

Какую функцию следует назвать этой функции?

6 Solutions collect form web for “Pythonic способ проверить: все элементы оцениваются в False -OR- все элементы оцениваются в True”

 def unanimous(it): it1, it2 = itertools.tee(it) return all(it1) or not any(it2) 
 def all_bools_equal(lst): return all(lst) or not any(lst) 

См .: http://docs.python.org/library/functions.html#all

См .: http://docs.python.org/library/functions.html#any

Пиггинг по методу Игнасио Васкеса-Абрама, но остановится после первого несоответствия:

 def unanimous(s): it1, it2 = itertools.tee(iter(s)) it1.next() return not any(bool(a)^bool(b) for a,b in itertools.izip(it1,it2)) 

Хотя использование not reduce(operators.xor, s) было бы проще, он не замыкается.

 def all_equals(xs): x0 = next(iter(xs), False) return all(bool(x) == bool(x0) for x in xs) 

Не так кратко, но ярлыки, не вмешиваясь в «тройник» или что-то в этом роде.

 def unanimous(s): s = iter(s) if s.next(): return all(s) else: return not any(s) 
 def AllTheSame(iterable): return any(iterable) is all(iterable) 
  • Python для просмотра и управления веб-страницей
  • Есть ли библиотека, которая будет определять язык исходного кода блока кода?
  • Эффективный способ преобразования списка в словарь
  • Python Время Секунды к h: m: s
  • Модуль Python для извлечения вероятных дат из строк?
  • Praw «не удалось проанализировать CPython sys.version» при создании объекта Reddit
  • Возможно ли технически сделать скриншот веб-сайта программным путем?
  • пример пипарации
  • Python - лучший язык программирования в мире.