2015-09-29 76 views
0

我有一個列表的列表,例如找到一對數字位於Python列表中的列表中的位置?

[["text",[6,24,4,40],[12,6,11,10],[...]]] 

我希望能夠找到一個對數字例如位置[4,40],但我只需要它在哪裏的位置整體列表,所以在這種情況下,它將是0(不包括「文本」的位置)。即對於這個例子,我想知道列表[6,24,4,40]的位置?
到目前爲止,我只能用1個數字來做到這一點,而不是一對數字。

+2

你試過什麼? – levi

+0

您能否展示您編寫的代碼,說明哪些部分會給您帶來問題,並顯示您收到的任何錯誤消息。甚至可以從你的代碼中得到任何可能幫助我們的幫助。請閱讀以獲得最大的利益:http://stackoverflow.com/help/how-to-ask – idjaw

+0

我使用了其他的東西,我抓住了這個網站,例如找到數字4是:a = 4 print [(i,x.index(a))for i,x in enumerate(list)if a in x] which給出輸出[(0,2)] – weaselsnak

回答

1
def subfind(needle, haystack): 
    """Returns index if found, None otherwise.""" 
    length = len(needle) 
    index = 0 
    for item in haystack: 
     if isinstance(item, list): 
      for ee in xrange(0, len(item) - length + 1): 
       if item[ee:ee+length] == needle: 
        return index 
      index += 1 
+0

謝謝John ...所以在這種情況下needle會是[ 4,40]和haystack是名單[[6,24,4,40,],[12,6,11,10]]?你的代碼中的長度是指什麼?這個清單的長度? – weaselsnak

+0

@weaselsnak:沒錯。我添加了缺少的「長度」。 –

+0

John我用subfind([4,40],[[6,24,4,40],[12,6,11,10]])運行函數,並使用2作爲長度或len(乾草堆)但它不顯示任何東西。只是想知道我做錯了什麼?我認爲指數/指數是要返回的。我想我是在錯誤的長度或東西。 – weaselsnak

相關問題