2012-11-13 167 views
0

如果列表位於列表中,如何從列表中獲取項目?所以,如果我有Python:從列表中獲取項目

mylist=[[range(4*(x-1)+1,4*(x-1)+5)]for x in range(1,5)] 

那麼我怎麼能從中檢索'1'?我一直認爲它就像

print mylist[0][0] 

但它不起作用。

+0

你得到一個錯誤,或者只是你不期待值? – ApproachingDarknessFish

回答

7

這實際上是一個三重嵌套列表,因爲range()返回一個列表,然後將其包裝在[]中。

你真正想要的也許是什麼...

mylist=[range(4*(x-1)+1,4*(x-1)+5) for x in range(1,5)] 

在這一點mylist[0][0]應該做你的期望。

+0

請記住,range()不會在Python 3中返回一個列表。您可以使用list(range())'使它在Python 2和Python 3中均可用。 – phant0m

+0

是的,這完全正確!我沒有意識到名單本身就是問題所在。非常感謝所有人! – RubenGeert

0

討厭被船長明顯,但你需要做的一切都只是去1個更深層次:)

>>> mylist=[[range(4*(x-1)+1,4*(x-1)+5)]for x in range(1,5)] 
>>> mylist 
[[[1, 2, 3, 4]], [[5, 6, 7, 8]], [[9, 10, 11, 12]], [[13, 14, 15, 16]]] 
>>> mylist[0][0][0] 
1