如何将列表的列表初始化为特定大小?

2 投票
2 回答
4076 浏览
提问于 2025-04-17 23:30

我想要初始化一个叫做'big_list'的列表,这个列表里面会包含200个小列表。我们知道每个小列表里要么是字符串,要么什么都没有。而在程序后面的部分,会有一个循环,用来往这些小列表中添加内容(可能会添加一次或多次),但只会添加到其中的某几个小列表里。

有没有什么简单的方法来做到这一点呢?

2 个回答

-3

你可以通过乘法来创建你想要的列表:

big_list = [[]] * 200

这样会得到一个包含200个空列表的列表。不过要注意的是,这200个列表其实是同一个列表的200个引用。这可能不是你想要的效果。例如,如果你往其中一个列表里添加东西,实际上所有的列表都会添加,因为它们都是同一个。

所以如果你想要一个包含多个列表的列表,Paulo Bu的方法可能会更好。用乘法来构造重复的字符串或者初始化一个整数列表是很方便的:

'A' * 5 -> 'AAAAA'
[0] * 3 -> [0, 0, 0]

这里列表中包含不同的“名字”指向同一个底层对象并不是问题,但对于可变类型,比如列表、字典、集合等,这就会变得麻烦(不过对于不可变的元组就没这个问题)-

4

你可以使用列表推导式,比如这样:

big_list = [[] for _ in range(200)]

这样做会生成一个包含200个不同列表的列表。

撰写回答