DataSet = open(r'/home/ly/Desktop/CHY/SCIENCE_DATA/Data_Set_01labelDel0Col.csv', 'rb')
reader_DataSet = csv.reader(DataSet)
headers = reader_DataSet.next()
Fisher = {}
featureList = []
for row in reader_DataSet:
ChangeStrToFloat = {}
for i in range(0, 3):
ChangeStrToFloat[i] = float(row[i])
if i <= 1:
Fisher[i] = math.atan(ChangeStrToFloat[i])
else:
Fisher[i] = ChangeStrToFloat[i]
print Fisher
# print ChangeStrToFloat
featureList.append(Fisher)
# featureList.append(ChangeStrToFloat)
print featureList
当featureList.append(ChangeStrToFloat)时,非常正常,下面给出其中一个append之后print的结果:
[{0: 0.162, 1: 0.278, 2: 0.034}, {0: 0.369, 1: 0.199, 2: 0.054}]
但当featureList.append(Fisher)时,就会把前面的字典用新的字典覆盖掉,再添加进去,就变成了两个一样的新的字典在列表里:
[{0: 0.35350004816363706, 1: 0.196433836738036, 2: 0.054}, {0: 0.35350004816363706, 1: 0.196433836738036, 2: 0.054}]
请高手解答!谢谢!