2013-12-11 47 views

回答

6

使用相等和項目訪問;負索引給你的項目從開始計數:

some_list[-1] == element 

這表達Truesome_list的最後一個項目,並通過element引用的值相等。

演示:

>>> lst = ['foo', 'bar', 'baz'] 
>>> lst[-1] == 'foo' 
False 
>>> lst[-1] == 'baz' 
True 

如果element可以在列表中不止一次,只想True如果是在列表中的最後一個項目,而不會發生在其他地方,然後測試明確:

some_list[-1] == element and some_list.index(element) == len(some_list) - 1 

這工作,因爲如果有一個以上的some_listelement一個發生,list.index()方法會找到一個比更低的指數3210。表達式在性能和掃描其他事件的需求之間達成了平衡;如果some_list[-1] == element測試失敗,則無需掃描整個列表。

+0

非常感謝! – Rakanoth

+1

這只是檢查值是否匹配最後一個元素的值。如果該元素實際上是列表中的最後一個元素,則不是。你可以有一個列表,該值的出現不止一次。 – M4rtini

+1

@ M4rtini:在那裏,增加了一個額外的測試來驗證'element'只出現一次;它應該儘可能早地短路,所以我使用'list.index()'而不是'list.count()'或切片。 –

相關問題