Я пытаюсь сравнить элементы списка 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])
.
Есть ли лучший способ, чем решение выше? Еще ... «пуфонический» способ?
Если они хешируются, вы можете использовать 'len (set (u)) == 1', но это только короче, не лучше. «все» кажутся мне прямодушными. – Ryan
Argh, я не видел дубликата. Спасибо @jamylak, чтобы указать на это. –