所有列表值都相同

der*_*rks 20 python list

在Python中,是一种测试列表中所有值彼此相等的简单方法吗?

小智 42

想到很多方法. 您可以将其转换为set(过滤掉重复项)并检查其长度编辑:正如另一张海报所说,这只适用于可散列类型; 我撤销了这个建议,因为它的表现更差,而且不那么笼统.

你可以使用一个生成器表达式: all(items[0] == item for item in items),这会短路(即一旦谓词对一个项目失败而不是继续,就会返回false).


Gre*_*ill 12

>>> a = [1, 1, 1, 1]
>>> len(set(a))
1
Run Code Online (Sandbox Code Playgroud)

请注意,此方法假定列表中的每个元素都可以放入集合中.某些类型(例如可变类型)无法放入集合中.