为每个for循环创建新列表

5 投票
4 回答
69057 浏览
提问于 2025-04-16 21:15

我想在每次运行for循环的时候创建一个新的列表。

#Reading user input e.g. 10
lists = int(raw_input("How many lists do you want? "))
for p in range(0,pooled):
    #Here I want to create 10 new empty lists: list1, list2, list3 ...

有没有什么聪明的方法可以做到这一点呢?

谢谢,

Kasper

4 个回答

1

也许在你的情况下,可以使用一个叫做 defaultdict 的东西?

>>> from collections import defaultdict
>>> m=defaultdict(list)
>>> m
defaultdict(<type 'list'>, {})
>>> for i in range(5):
...     len(m[i])
... 
0
0
0
0
0
>>> m
defaultdict(<type 'list'>, {0: [], 1: [], 2: [], 3: [], 4: []})
5

最简单的方法是创建一个列表的列表:

   num_lists = int(raw_input("How many lists do you want? "))
   lists = []
   for p in range(num_lists):
        lists.append([])

这样你就可以通过 list[2] 来访问第三个列表,想要获取第三个列表中的第 i 个项目,可以用 list[2][i]

8

可以使用列表推导式:

num_lists = int(raw_input("How many lists do you want? "))
lists = [[] for i in xrange(num_lists)]

撰写回答