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

2024-05-16 18:48:41 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
check if all elements in a list are identical

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

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

在Python中有没有非常简单和优雅的方法来实现这一点?


Tags: 方法in元素列表forifcheckelements
3条回答
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!
all(x == items[0] for x in items)

这就是你要找的。

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

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

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

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

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

相关问题 更多 >