2015-11-10 61 views
2

的列表,以及一個要搜索的元素...搜索在考慮名單<code>A</code>築巢最多一層名單列表和元素

A = [1,2,3,[4,5,6,7],8,9,10] 
to_find = 5 

什麼是檢查是否有元素的最快方法價值5存在於A還是不存在?列表不會被排序,元素的索引也不用擔心。

我可以遍歷A並檢查元素是否爲列表,然後遞歸檢查。

有沒有更好更快的方法來做到這一點?

+0

如何許多層次的嵌套可以在'A'中? – myaut

+2

[在多維列表上使用index()可能有重複](http://stackoverflow.com/questions/6518291/using-index-on-multidimensional-lists) – letsc

+0

您在尋找什麼樣的結果? –

回答

0

鑑於「名單列表」的條件和「在嵌套的最一平」:

def search(A, to_find): 
    return any(1 for x in A if (x == to_find or (isinstance(x, list) and to_find in x))) 

(編輯整理如果你碰巧尋找一個Falsy值如0)