2016-09-27 87 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

相關問題