在python中使用for循环声明动态列表

时间:2016-04-21 14:06:08

标签: python

我只想根据输入声明一些范围的列表。

例如,如果我将输入设为4,我将期待4个列表,如

list1 = []
list2 = []
list3 = []
list4 = []

我试过这个

for i in range (1,4):
   list(%d) %i= []

但它不起作用。

1 个答案:

答案 0 :(得分:0)

我同意PM-2ring的观点,在大多数情况下,列表或词典更合适。

d = {}
for i in range(1,4):
    d['list%s' % i] = []

l = [[] for x in range(1,4)]

但要回答实际问题的实际问题,这是非常罕见的情况之一,即使存在与动态创建变量相关的所有问题(可维护性,访问,消毒用户输入等),这是正确的事情。 。

如果它是您的新信息,您可能不应该执行以下任何操作。

这取决于上下文。如果您将它们插入到对象中,它将是:

a = classA()

for i in range(1,4):
    setattr(a, 'list%s' % i, [])

如果尝试创建全局变量:

for i in range(1,4):
    globals()['list%s' % i] = []