2013-05-02 37 views
0

我試圖做一個簡單的代碼行,查找列表中的某個元素並給出true或false。布爾值。是列表中的字符串而不是最後一個位置? Python

我想知道它是否在列表中。 。 。它可以是列表中的任何位置,但如果它是最後一個,它也必須位於另一個位置。

例子:

my_list = ['abc','def','ghi','jkl','def'] #meets criteria 
my_list2 = ['abc','ghi','jkl','def'] #does not meet criteria 
my_search = 'def' 

my_list在列表的中間和末尾,以便將符合條件的 my_list2只有「高清」「高清」末所以它不會滿足標準

我試圖沿着線的東西,

(('def' in my_list) and (my_list[-1] == 'def')) or (('def' in my_list) and (my_list[-1] !+ 'def')) 

,但我覺得那是很長的路要走做到這一點。

回答

3

所以你可以檢查它是否在列表中減去最後一個元素:

>> my_list = ['abc','def','ghi','jkl','def'] 
>>> 'def' in my_list[:-1] 
True 

>>> my_list2 = ['abc','ghi','jkl','def'] 
>>> 'def' in my_list2[:-1] 
False 
+0

我不知道爲什麼我沒有想到的是 – 2013-05-02 20:07:47

+0

的可能發生在我身上,真的; ) – uselpa 2013-05-02 20:12:00

0

嘗試使用子列表...

'def' in my_list[:-1] 
+0

看起來像你失去了一個負面的跡象... – mgilson 2013-05-02 20:10:49

+0

@mgilson這是令人印象深刻的......它只有5英寸從xterm到鉻窗口! – 2013-05-02 20:11:29

0

可能你只是看看前n -1個元素?

'def' in my_list[:-1] 

,除非我的誤解,會給你真正的第一和虛假第二

相關問題