问题
想要初始化一个多维空列表,如 a = [[], [], []]
,但是列表的数量由一个数字data_num
指定。
尝试方法
使用a = [[]] * data_num
来创建
结果
使用以上方式创建,在赋值的时候,比如我要给a
的第一行赋值,使用a[0] += [1,2,3,4]
进行赋值时,a
的所有行都被赋上了相同的值,导致结果如下:
a = [
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]
]
改正方式
使用a = [[] for _ in range(data_num)]
来创建data_num
行空列表。改正后使用a[0] += [1, 2, 3, 4]
得到结果如下:
a = [
[1, 2, 3, 4],
[],
[]
]
其中原理没有深究,如果你有补充,欢迎留言。