2014-12-23 3 views
3

Я пытаюсь сравнить элементы списка u для равенства.Применить сравнение со списком в Python?

Возможное решение может быть all(x == u[0] for x in u[1:]), или просто all(x == u[0] for x in u), но это выглядит довольно странно.

В Python можно написать a == b == c с его обычным «математическим» значением. Поэтому я думал, что смогу, с помощью модуля operator, напишите operator.eq(*u). Однако функция eq принимает только два аргумента. Конечно, functools.reduce(operator.eq, u) здесь бесполезен, так как после первого теста eq(u[0], u[1]), я получаю логическое значение, и он будет терпеть неудачу при выполнении второго теста, eq(<bool>, u[2]).

Есть ли лучший способ, чем решение выше? Еще ... «пуфонический» способ?

+0

Если они хешируются, вы можете использовать 'len (set (u)) == 1', но это только короче, не лучше. «все» кажутся мне прямодушными. – Ryan

+0

Argh, я не видел дубликата. Спасибо @jamylak, чтобы указать на это. –

ответ

Смежные вопросы