2012-11-13 125 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