【发布时间】:2013-07-12 18:21:14
【问题描述】:
我有一个值列表
x=[1,-1,-1,1,1,-1,1,-1,1,-1]
我还有另一个空白清单
y=[ ]
我正在尝试创建一个函数,该函数将在 x 中获取 sigma 和并将它们存储在 y 中。
例如,y[0] 应该是 x[0]*x[0] + x[0]*x[1] + x[0]*x[2] + ... + x[0]*x[9] 的总和。
同样,y[1] 应该是 x[1]*x[0] + x[1]*x[1] + x[1]*x[2]+ ... + x[1]*x[9] 的总和。
这必须为y[0] through y[9] 完成。
此外,在总和中,x[i]*x[i] 必须为零。因此,例如在y[0] 中,x[0]*x[0] 必须为零。同样,在y[1] 的总和中,x[1]*x[1] 必须为零。
这是我的代码,但它总是给我一些关于索引的错误:
x=[1,-1,-1,1,1,-1,1,-1,1,-1]
y=[]
def list_extender(parameter):
for i in parameter:
parameter[i]*parameter[i]==0
variable=numpy.sum(parameter[i]*parameter[:])
if variable>0:
variable=1
if variable<0:
variable=-1
y.append(variable)
return y
然后我运行print list_extender(x),它应该打印列表y 和上面描述的sigma 总和,但我总是得到一个错误。我做错了什么?
我们将非常感谢您的帮助!
【问题讨论】:
-
你得到什么错误?您可以发布完整的回溯吗? (一方面,您在
sum行中缺少一个结束括号)。另一个问题是parameter[i]*parameter[i]==0行实际上什么都不做(它只是将parameter[i]*parameter[i]与 0 进行比较,并且对结果不做任何事情。 -
括号已修复。现在它返回 y 作为零列表,但这不应该是结果。那么如何将其更改为使
parameter[i]*parameter[i]实际上为零并对结果产生影响? -
“
x[i]*x[i]必须为零”,您的意思是x必须完全由零组成,还是您想说您想从 @ 的计算中排除x[i]*x[i]987654345@? -
@user2357112 我想从计算中排除 x[i]*x[i]