Python清单:检查所有项目是否相同

时间:2018-11-10 11:18:10

标签: python list

我有一个带字符串的python列表,我想检查所有列表项的值是否相同。 我尝试与条件if/then一起使用,但是我需要检查列表值的所有组合,并且如果列表中有很多项,则需要很多硬代码

if item1 != item1 and item1 != item2 and item1 !=item2 ....... :
    check='wrong'
else:
    check= 'correct'

字符串列表

listOfStrings = ['ep:1000' , 'ep:4444', 'ep:1000', 'ep:1000', 'ep:1000', 'ep:1000']

更新

示例:

CORRECT_LIST = ['ep:1000' , 'ep:1000', 'ep:1000', 'ep:1000', 'ep:1000', 'ep:1000']

在正确的列表中,所有项目的值都相同,那么我的列表是正确的

WRONG_LIST = ['ep:1000' , 'ep:4444', 'ep:1000', 'ep:1000', 'ep:1000', 'ep:1000']

错误列表中的WRONG_LIST并非所有项目值字符串都是一些

我要检查列表值。

有什么主意如何检查列表中的所有项目值是否相同?

3 个答案:

答案 0 :(得分:4)

您提供的代码段看起来有些奇怪。但是,如果我理解正确,则您正在尝试检查列表中唯一值的数量。

一种实现方法是将其转换为集合并检查其长度。

len(set(listOfStrings))

已更新,其中包含来自@iGian的工作代码段:

check = 'wrong' if len(set(list_of_strings)) > 1 else 'correct'

答案 1 :(得分:1)

在正确的列表中所有项目的值都相同,那么我的列表是正确的

如果要检查列表中的所有项目是否都相同,可以检查列表中集合的长度是否等于1:

set((listOfStrings)) == 1 

集合的特征是每个元素对该集合都是唯一的。

答案 2 :(得分:1)

这会将列表中的每个元素与第一个元素进行比较:

listOfStrings = ['ep:1000' , 'ep:4444', 'ep:1000', 'ep:1000', 'ep:1000', 'ep:1000']
check = all(x == listOfStrings[0] for x in listOfStrings)

并为您的测试用例返回false