gpt4 book ai didi

python - 索引错误 : list index out of range on python dynamic variable length

转载 作者:太空宇宙 更新时间:2023-11-04 00:06:57 25 4
gpt4 key购买 nike

当我在函数内的 Python 中创建一个基本的 for 循环以便使用动态变量长度 (z) 时,我遇到了以下错误:

Rs = []
z = []
N = 120
m = 1
for i in range(1, N):
Rs[i] = z[m]
m = m + 1
Rs[i] = z[m]  
IndexError: list index out of range

为了清楚起见,我将更好地解释我正在尝试做的事情。我想求解一个由动态数量的未知数组成的方程组。我已经开始使用“静态”方法并且效果很好。基本上,代码大致如下:

from scipy.optimize import fsolve

def fixEqSyst(z):
v1 = z[0]
v2 = z[1]
v3 = z[2]
v4 = z[3]
f=np.zeros(4)
f[0] = 2*v1-3*v2+7*v3**2
f[1] = v1+3*v2**2-9*v3
f[2] = -3v1**2+12*v2+7*v3
f[3] = 4*v1+5*V2*v3
return f

z = fsolve(fixEqSyst, [0, 0, 0, 0])

基于现在我将面临动态数量的未知数和函数这一事实,除了我已经实现的解决方案之外,还有其他替代解决方案吗? (使用 for 循环策略)

最佳答案

就在你的循环的第一次迭代中你得到

Rs[1] = z[1]

但是 z[1] 不存在,因为 z = []

(同样适用于 Rs[1]。)

我不知道如何修复它,因为我无法猜测您想要用您的代码执行什么。

也许你想复制你的包含 - 假定非空 - 列表 zRs。然后它们是 2 种不同的简单解决方案:

Rs = z   

注意! 这不是复制操作,这只会将其他名称关联到同一对象,因此z中的每个更改将在 Rs 中产生相同的变化,反之亦然。

Rs = z[:]

这是真实的(但肤浅)副本。对于简单列表,这与 副本相同。

关于python - 索引错误 : list index out of range on python dynamic variable length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com