plot_data = [[]] * len(positions)
您正在重复相同的列表len(positions)
时间。
>>> plot_data = [[]] * 3
>>> plot_data
[[], [], []]
>>> plot_data[0].append(1)
>>> plot_data
[[1], [1], [1]]
>>>
列表中的每个列表都是对同一对象的引用。您修改一个,就可以看到所有修改。
如果要使用其他列表,可以采用以下方式:
plot_data = [[] for _ in positions]
例如:
>>> pd = [[] for _ in range(3)]
>>> pd
[[], [], []]
>>> pd[0].append(1)
>>> pd
[[1], [], []]