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



如何创建与for循环变量确定的空列表一样多的空列表?

如:

for i in range(3):
    list_{i} = []  #this is just an idea

for循环结束时,我将有:

list_0 = [] #empty, I could add elements later.
list_1 = [] #empty
list_2 = [] #empty

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

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

输出:

[[], [], []]

然后,如果要将元素添加到特定list_:

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]

试试这个:

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 等于 [] .

通过列表理解:

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

或通过.append()

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

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

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

2.您可以动态创建它

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

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

>>> 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': []}

最新更新