将列表初始化为固定数量的元素
对于不可变元素(例如 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)]