我有一个带字符串的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并非所有项目值字符串都是一些
我要检查列表值。
有什么主意如何检查列表中的所有项目值是否相同?
答案 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
。