如何在不手动输入的情况下制作许多空列表
list1=[] , list2=[], list3=[]
是否有一个 for 循环可以让我有“n”个这样的空列表?
如何在不手动输入的情况下制作许多空列表
list1=[] , list2=[], list3=[]
是否有一个 for 循环可以让我有“n”个这样的空列表?
列表理解在这里最简单:
>>> n = 5
>>> lists = [[] for _ in range(n)]
>>> lists
[[], [], [], [], []]
小心不要落入以下陷阱:
>>> lists = [[]] * 5
>>> lists
[[], [], [], [], []]
>>> lists[0].append(1)
>>> lists
[[1], [1], [1], [1], [1]]
如果您想创建没有“列表列表”的不同列表,请尝试以下操作:
list1, list2, list3, list4 = ([] for i in range(4))
我看到这里的许多答案会为您提供许多未指定名称的列表(作为较大列表的元素)。这可能并不总是需要的。可以使用元组创建多个空列表,每个列表具有不同的名称/值:
a,b,c = ([],[],[])
改变这个结构应该得到你想要的。
这个怎么样。
def mklist(n):
for _ in range(n):
yield []
用法:
list(mklist(10))
[[], [], [], [], [], [], [], [], [], []]
a, b, c = mklist(3) # a=[]; b=[]; c=[]
对不起,我迟到了两年,但也许我仍然可以帮助其他人。
下面的代码将动态地“创建”自身。对于每次迭代,将发出以下命令:
列表编号= []
其中number是循环中 i 的值。
x = 3 # amount of lists you want to create
for i in range(1, x+1):
command = "" # this line is here to clear out the previous command
command = "list" + str(i) + " = []"
exec(command)
这段特定代码的结果是创建了三个变量:list1、list2 和 list3,每个变量都分配了一个空列表。
您可以将其概括为几乎任何您想要的东西。请注意,据我所知,您不能将其放入函数中,因为变量和全局变量是如何工作的。
name = "my_var" # This has to be a string, variables like my_var1, my_var2 will be created.
value = "[]" # This also has to be a string, even when you want to assign integers! When you want to assign a string "3", you'd do this: value = "'3'"
amount = 5 # This must be an integer. This many variables will be created (my_var1, my_var2 ... my_var5).
for i in range(1, amount+1):
command_variable = ""
command_variable = name + str(i) + " = " + value
exec(command_variable)
我希望我有所帮助!
您还可以添加列表列表列表列表......也像这样。它不会返回任何错误。但我不知道它是做什么用的。
n = 5
>>> lists = [[[]]] for _ in range(n)]
>>> lists
[[[[]]], [[[]]], [[[]]], [[[]]], [[[]]]]