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

标签 python index-error dynamic-variables

当我在函数中使用 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] 的情况相同。)

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

也许您想将假定的非空列表 z 的内容复制到 Rs。那么它们是两个不同的简单解决方案:

Rs = z   

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

Rs = z[:]

这是真实的(但是)副本。对于简单列表,这与深层复制相同。

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

相关文章:

python - 向下滚动谷歌地图网页

python - 无法使用 wxPython 打开在 folium 中生成的本地 HTML 文件

python - IndexError尝试在python中数值求解差分方程

python - Pathlib 使用 Path.parents 访问 Path 时出错

Javascript 在这种情况下使用 IF 或 SWITCH 或 "dynamic function name"的最佳做法是什么

python - 使用命名组和替换使用 python 正则表达式剖析字符串

Python:IndexError:列表索引超出范围仅在某些情况下发生

python - 如何在 Google App Engine 扩展类中创建动态字段?

c++ - C++中动态数组的长度信息是关联指针还是首元素地址?

python - 如何将 pickle 数据保存到 tkinter 输入框或从 tkinter 输入框重新加载?