Python:确定列表中的所有项目是否都是同一项目
在我的一些代码中,我将一系列对象放入列表中,并根据其属性(即字符串)构建了另一个列表。我需要确定第二个列表中的所有项目是否具有完全相同的值,而无需事先知道它是哪个值,然后返回布尔值,以便根据结果在代码中可以做不同的事情。
我事先不知道属性的名称,这就是为什么我试图使某些属性尽可能通用。
为了使示例更清楚,一个理想的函数“ 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