如何在python中创建多个空列表?

时间:2012-11-22 22:35:01

标签: python list empty-list

如何在不手动输入

的情况下制作许多空列表
list1=[] , list2=[], list3=[]

是否有一个for循环会让我有这么多空列表?

7 个答案:

答案 0 :(得分:69)

列表理解最简单:

>>> n = 5
>>> lists = [[] for _ in range(n)]
>>> lists
[[], [], [], [], []]

要小心不要进入陷阱:

>>> lists = [[]] * 5
>>> lists
[[], [], [], [], []]
>>> lists[0].append(1)
>>> lists
[[1], [1], [1], [1], [1]]

答案 1 :(得分:24)

如果您想创建不含“列表列表”的不同列表,请尝试以下操作:

list1, list2, list3, list4 = ([] for i in range(4))

答案 2 :(得分:9)

查找list comprehensions

listOfLists = [[] for i in range(N)]

现在,listOfLists中有N个空列表

列表推导的更多链接:

1 2 3

希望这有帮助

答案 3 :(得分:2)

这个怎么样。

def mklist(n):
    for _ in range(n):
        yield []

用法:

list(mklist(10))
[[], [], [], [], [], [], [], [], [], []]

a, b, c = mklist(3) # a=[]; b=[]; c=[]

答案 4 :(得分:1)

您也可以添加列表列表列表...也是这样。它不会返回任何错误。但我不知道它的用途。

*.sublime-*
.bundle
db/*.sqlite3*
log/*.log
*.log
tmp/**/*
tmp/*
Gemfile.lock
doc/api
doc/app
*.swp
*~
.DS_Store

答案 5 :(得分:1)

很抱歉我迟到了两年,但也许我仍然可以帮助其他人。

以下代码将动态创建'本身。对于每次迭代,将发出以下命令:

  

列出数字 = []

其中数字是循环中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)

我希望我帮忙!

答案 6 :(得分:0)

我看到这里的许多答案会为您提供许多未分配名称的列表(作为较大列表的元素)。这可能并不总是需要的。 可以使用元组创建多个空列表,每个空列表具有不同的名称/值:

a,b,c = ([],[],[])

更改此结构应该可以为您提供所需的东西。