2016-09-27 62 views
0

我使用下面的代码来检查,如果列表中的所有元素都是相同的:蟒蛇:检查是否所有元素同样在名单

def sameItem(myList): 
    return all(x==myList[0] for x in myList) 

然而,在我的测试案例:

myL1 = ['dog','cat','dog'] 
sameItem(myL1) 

返回True。它不应该是假的?或者我在sameItem()函数中有错误吗?

此外,我正在使用Jupyter笔记本电脑,它可能会导致任何问题是这种情况?

谢谢!

+0

是的。第一项是'狗',第二项'猫'不等于'狗'。它不应该返回False吗? – Edamame

+0

不重现。它为我返回False – Li357

+0

你是否也使用python 2.7? – Edamame

回答

1

你的方法应该是正确的,适用于我。作为替代方案,您可以尝试使用此方法进行双重检查,这是执行相同操作的一条线。

return myList[1:] == myList[:-1] 
+0

这对我有用。请问这是什么意思?谢谢 – Edamame

+0

'myList [1:]'返回列表中除第一个元素外的所有元素的列表。 'myList [: - 1]'返回列表中除最后一个以外的所有元素。你可以在python解释器中试用它来感受索引。如果这有效,你会介意将答案标记为正确吗?这样就可以知道问题已经解决。谢谢! – user3543300