如何创建与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_0
、 list_1
和 list_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': []}