2014-07-18 114 views
-1

列表說我有一個列表:搜索列表中的

D = [str1, str2, str3, str4, str5, str6, ... str100] 

我要搜索使用[str4 str5]列表作爲我的關鍵字,並返回我的關鍵字的最後一個元素的索引。在這種情況下,我想回到4因爲str5是在我和發現在搜索列表索引的最後一個元素,即D,爲4

是否有這樣做的任何有效的方法?我想過使用for循環,但這需要太多時間,因爲我有一個非常大的列表。列表理解是一種解決方案嗎?

編輯:

要回答Ben的問題,我需要尋找[str4 str5]爲一組,因爲我要確保這兩個字串在一起。如果沒有str4,則可能在[str5]之前自己出現。

+0

爲什麼不只是搜索'str5'?它由'D.index(str5)' – Ben

+0

完成如果您需要快速查找,則使用錯誤的數據結構。我認爲給我們更多的背景將會有很大的幫助。 –

+0

因爲我需要確保str4恰好在str5之前。我想要搜索這兩個字符串作爲一個集合。 – qiaop

回答

-1

確定是否存在第一個值,然後確定第二個值是否存在。如果值不存在或值不是按順序存在,則需要應用所需的邏輯。

x = ['str4', 'str5'] 

if d.index(x[0]) + 1 == d.index(x[1]): 
    return d.index(x[1]) 
+1

這隻會查找序列的第一個實例。 – whereswalden