import os;
import sys;
import random;
particle_list = [[-1, float(1)/100]] * 20;
print particle_list;
for i in range(0, len(particle_list)):
a = random.randint(0, 10);
particle_list[i][0] = a;
print str(a);
print particle_list[i][1];
particle_list[i][1] *= 2;
print particle_list[i][1];
print;
如果打印出结果,则在particle_list中,所有结果都相同。有人可以帮忙吗?
答案 0 :(得分:2)
将您的particle_list
声明更改为:
particle_list = [[-1, float(1)/100] for i in range(20)]
您当前生成列表的方式会创建列表中的其余项目作为对第一个项目的引用。此代码将为列表中的每个项生成不同的列表,而不是引用。
还建议您不要在代码中使用分号,因为它们不是非常pythonic