如何检查列表中的每个元素是否相等?

时间:2012-10-29 17:41:40

标签: python list

  

可能重复:
  check if all elements in a list are identical

我想检查列表中的所有元素是否相等。我不能这样做:

if all (x == x for x in (a, b, c, d)):
    ...

在Python中有这种非常简约和优雅的方法吗?

4 个答案:

答案 0 :(得分:4)

如果列表中只有可清除元素,则可以使用set

例如,如果您的列表名为lst,则可以执行以下操作:

if (len(set(lst)) <= 1):
    ....

该集合将消除列表中的所有重复项,因此如果集合的长度为 1 ,则表示所有元素都相同。

答案 1 :(得分:1)

all(x == items[0] for x in items)

这就是你要找的东西。

否则,您将每个值与自身x==x进行比较,而不是将每个值与第一个值进行比较。

答案 2 :(得分:0)

first = my_list[0]
print all(x==first for x in my_list[1:])

应该有效

更优雅也许......(我真的不这么认为......)

>>> if reduce(lambda item0,item1:item0 if item0==item1 else False,my_list) is not False:
...    print "OK ALL THE SAME!"
...
OK ALL THE SAME!

答案 3 :(得分:-1)

使用效果基准

回答here

我的最爱:lst[1:] == lst[:-1]