如何在python中创建一些空的嵌套列表

时间:2013-10-08 13:35:08

标签: python list nested-lists

我想要一个变量,它是一个嵌套的列表,列出了一些我可以在以后填写的空列表。看起来像:

my_variable=[[], [], [], []]

但是,我事先并不知道我需要多少列表,只是在创建步骤,因此我需要一个变量a来确定它。 我想到了简单的my_variable=[[]]*a,但它创建了列表的副本,而不是我想要的。

我能做到:

my_variable=[]  
for x in range(a):
   my_variable.append([])

但我正在寻找更优雅的解决方案(最好是单线)。有没有?

2 个答案:

答案 0 :(得分:15)

尝试list comprehension

lst = [[] for _ in xrange(a)]

见下文:

>>> a = 3
>>> lst = [[] for _ in xrange(a)]
>>> lst
[[], [], []]
>>> a = 10
>>> lst = [[] for _ in xrange(a)]
>>> lst
[[], [], [], [], [], [], [], [], [], []]
>>> # This is to prove that each of the lists in lst is unique
>>> lst[0].append(1)
>>> lst
[[1], [], [], [], [], [], [], [], [], []]
>>>

但请注意,上述内容适用于Python 2.x.在Python 3.x.上,由于删除了xrange,您将需要这样:

lst = [[] for _ in range(a)]

答案 1 :(得分:6)

>>>[[] for x in range(10)] #To make a list of n different lists, do this:
[[], [], [], [], [], [], [], [], [], []]

编辑: -

[[]]*10

这将给出与上面相同的结果,但列表不是不同的实例,它们只是对同一实例的n个引用。