我想准备包含所有可能参数组合的列表列表,这些组合将用于强力搜索。参数组合应如下所示:
[0,0,1]
[0,0.2,0.8]
[0.2,0,0.8]
...
[0.4,0.4,0.2]
...
[1,0,0]
生成这些列表的代码工作正常 - 在每次迭代中打印 weights_temp 都会返回正确的结果。但是附加有一些问题。当我打印权重时,我得到的就是这个(最后 weights_temp 值而不是其他元素):
[1.0,0.0,0.0]
[1.0,0.0,0.0]
...
[1.0,0.0,0.0]
...
[1.0,0.0,0.0]
这是我的代码:
step = 0.2
weights_temp = [0, 0, 1]
weights = [weights_temp]
i = 1
while weights_temp != [1, 0, 0]:
# decrease gamma
weights_temp[2] = 1 - i * step
for j in xrange(0, i + 1):
# increase alpha, decrease beta
weights_temp[0] = j * step
weights_temp[1] = abs(1 - weights_temp[2]) - j * step
weights.append(weights_temp)
print weights_temp
i += 1
有人知道如何解决这个问题吗?
提前谢谢
答案 0 :(得分:0)
继续我的评论,而不是添加引用,每次添加列表理解时都会创建一个新列表。
weights.append([item for item in weights_temp])
示例:
>>> temp = [1,2,3]
>>> holder = [temp]
>>> holder
[[1, 2, 3]]
>>> temp[0] += 1
>>> holder
[[2, 2, 3]]
>>> holder.append([item for item in temp])
>>> holder
[[2, 2, 3], [2, 2, 3]]
>>> temp[0] +=1
>>> holder
[[3, 2, 3], [2, 2, 3]]
答案 1 :(得分:0)
for s in arr:
li.append(
{"id":s.get("InstanceId"),"Message":s.get("Status").get("Message") }
)