我有一個列表的列表,例如找到一對數字位於Python列表中的列表中的位置?
[["text",[6,24,4,40],[12,6,11,10],[...]]]
我希望能夠找到一個對數字例如位置[4,40],但我只需要它在哪裏的位置整體列表,所以在這種情況下,它將是0(不包括「文本」的位置)。即對於這個例子,我想知道列表[6,24,4,40]的位置?
到目前爲止,我只能用1個數字來做到這一點,而不是一對數字。
我有一個列表的列表,例如找到一對數字位於Python列表中的列表中的位置?
[["text",[6,24,4,40],[12,6,11,10],[...]]]
我希望能夠找到一個對數字例如位置[4,40],但我只需要它在哪裏的位置整體列表,所以在這種情況下,它將是0(不包括「文本」的位置)。即對於這個例子,我想知道列表[6,24,4,40]的位置?
到目前爲止,我只能用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
謝謝John ...所以在這種情況下needle會是[ 4,40]和haystack是名單[[6,24,4,40,],[12,6,11,10]]?你的代碼中的長度是指什麼?這個清單的長度? – weaselsnak
@weaselsnak:沒錯。我添加了缺少的「長度」。 –
John我用subfind([4,40],[[6,24,4,40],[12,6,11,10]])運行函數,並使用2作爲長度或len(乾草堆)但它不顯示任何東西。只是想知道我做錯了什麼?我認爲指數/指數是要返回的。我想我是在錯誤的長度或東西。 – weaselsnak
你試過什麼? – levi
您能否展示您編寫的代碼,說明哪些部分會給您帶來問題,並顯示您收到的任何錯誤消息。甚至可以從你的代碼中得到任何可能幫助我們的幫助。請閱讀以獲得最大的利益:http://stackoverflow.com/help/how-to-ask – idjaw
我使用了其他的東西,我抓住了這個網站,例如找到數字4是:a = 4 print [(i,x.index(a))for i,x in enumerate(list)if a in x] which給出輸出[(0,2)] – weaselsnak