将列表初始化为固定数量的元素

对于不可变元素(例如 None,字符串文字等):

my_list = [None] * 10
my_list = ['test'] * 10

对于可变元素,相同的构造将导致列表的所有元素引用同一对象,例如,对于集合:

>>> my_list=[{1}] * 10
>>> print(my_list)
[{1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}]
>>> my_list[0].add(2)
>>> print(my_list)
[{1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}]

相反,要使用固定数量的不同可变对象初始化列表,请使用:

my_list=[{1} for _ in range(10)]