Python:确定列表的所有项目是否都是同一个项目

标签 python list

在我的一些代码中,我将一系列对象放在一个列表中,并根据它们的属性构建一个附加列表,这是一个字符串。我需要确定第二个列表中的所有项目是否具有完全相同的值,而不事先知道它是哪个值,并返回一个 bool 值,以便我可以根据结果在我的代码中做不同的事情。

我无法事先知道属性的名称,这就是为什么我要尽可能地制作一些通用的东西。

为了让这个例子更清楚,一个名为“all_same”的理想函数会这样工作:

>>> property_list = ["one", "one", "one"]
>>> all_same(property_list)
True
>>> property_list = ["one", "one", "two"]
>>> all_same(property_list)
False

我正在考虑制作一个独特元素列表,然后检查其长度是否为 1,但我不确定这是否是最优雅的解决方案。

最佳答案

def all_same(items):
    return all(x == items[0] for x in items)

示例:

>>> def all_same(items):
...     return all(x == items[0] for x in items)
...
>>> property_list = ["one", "one", "one"]
>>> all_same(property_list)
True
>>> property_list = ["one", "one", "two"]
>>> all_same(property_list)
False
>>> all_same([])
True

关于Python:确定列表的所有项目是否都是同一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3787908/

相关文章:

python - Tkinter 文本插入 : "' Nonetype' object has no attribute 'insert'

python - 不使用切片的 Numpy 索引

python - 寻找在 3600x20x20 的 xarray 中查找阈值之间的值的最快方法

python - 如何在任意位置插入元素到列表中?

python - 如何在循环列表本身时删除列表元素而不复制它

Python 3.3.4 Cx_Freeze 导入错误 : DDL load failed: The specified module could not be found

python - 根据 pandas 中的日期范围创建 FY

java - 为什么 Range 会抛出 UnsupportedOperationException?

Python:获取列表的子集,避免列表理解

python - 列表应该总是转换为元组吗?