【发布时间】:2022-11-10 21:29:02
【问题描述】:
大家好,这是我的第一个问题,所以请告诉我如何改进提问:),
我正在尝试运行此代码,但没有得到预期的结果。
我认为问题在于我正在编辑列表列表中的值
编码 :
def f(x1,x2):
return 1.5*(x1)**2+0.5*(x2**2)-x1*x2-2*x1
def f_tag_x1 (lst):
x2=lst[1]
x1=lst[0]
return -((3*x1-x2-2)/3)
def f_tag_x2 (lst):
x2=lst[1]
x1=lst[0]
return (x1-x2)
demsions=2
k=1
x=[[-2,4]]
ftags=[f_tag_x1,f_tag_x2]
while (k<3):
x.append(x[k-1])
for i in range(0,demsions):
if i==0:
x[k][i]=(x[k-1][i]+ftags[i](x[k-1]))
else:
x[k][i]=(x[k][i]+ftags[i](x[k]))
k=k+1
print(x)
而不是一个列表中所有运行的结果 我只是得到相同的值(最后一个) 在所有列表中
例如 : 我明白了 [[x, y], [x, y], [x, y]]
代替
[[e, r], [h, j], [x, y]]
我认为这是因为我使用 x[k][i] 来获取列表中的每个元素并将其弄乱 但我找不到另一种方法
提前致谢 !
我曾尝试使用 x[k][i] 作为编辑列表列表的简便方法,但效果不佳
【问题讨论】:
标签: python arrays list numpy append