基于“ for”循环变量创建新列表

时间:2019-01-30 11:32:30

标签: python list for-loop

如何创建request.GET.get('state')循环变量确定的尽可能多的空列表?

如:

for

for i in range(3): list_{i} = [] #this is just an idea 循环的结尾,我将拥有:

for

我是Python的新手,所以如果这个问题是重复的,请告诉我,但我还没有发现有相同需求的任何问题。

4 个答案:

答案 0 :(得分:2)

lists_= [[] for i in range(3)]
print(lists_)

输出:

[[], [], []]

,然后,如果您要将元素添加到特定列表_:

lists_[0].append(1)
lists_[0].append(2)
lists_[0].append(3)

print(lists_[0])

输出:

[1, 2, 3]

编辑:

由于OP提到range是有条件的:

cond_1 = False
if cond_1:
    x = 3
else:
    x = 2
lists_= [[] for i in range(x)]
print(lists_)

输出:

[[], []]
[1, 2, 3]

答案 1 :(得分:1)

1。您可以使用for循环以另一种方式创建列表列表

>>> pool = []
>>> for i in range(3):
>>>    pool.append([])

2。您可以动态创建

>>> pool = [[] for i in range(3)]

3。但是,如果要指定名称,maby最好将它们存储在字典中

>>> pool = dict([(i, []) for i in range(3)])

输出将是:

>>> pool
{0: [], 1: [], 2: []}

4。具有可读名称的相同示例

>>> pool = dict([(i, []) for i in ['list1', 'list2', 'list3']])

该示例中的输出将是:

>>> pool
{'list1': [], 'list3': [], 'list2': []}

答案 2 :(得分:1)

通过列表理解:

lst = [[] for i in range(3)]

或通过.append()

lst = list()
for i in range(3):
    lst.append([])

print(lst)

答案 3 :(得分:1)

尝试一下:

for i in range(3): 
    globals()[f'list_{i}'] = []  # Only Python3.6 or higher

对于低于3.6的python:

for i in range(3): 
    globals()['list_{}'.format(i)] = [] 

那么您将拥有list_0list_1list_2等于[]