我想要一个变量,它是一个嵌套的列表,列出了一些我可以在以后填写的空列表。看起来像:
my_variable=[[], [], [], []]
但是,我事先并不知道我需要多少列表,只是在创建步骤,因此我需要一个变量a
来确定它。
我想到了简单的my_variable=[[]]*a
,但它创建了列表的副本,而不是我想要的。
我能做到:
my_variable=[]
for x in range(a):
my_variable.append([])
但我正在寻找更优雅的解决方案(最好是单线)。有没有?
答案 0 :(得分:15)
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个引用。