我的代码是给我的错误:列表分配索引超出范围
list_subs[n][4] = np.random.normal(list_subs[n][1], list_subs[n][2])
IndexError: list assignment index out of range.
...我已经寻找这个错误,我仍然无法找到什么问题。
编辑:全回溯
回溯(最近通话最后一个): 文件 “”,行420,在run_nodebug 文件“C:\ Documents和Settings \ jhsilva \桌面\蒙特卡罗\ Teste.py “,第71行,在 generateRandomNumbers(list_subs) 文件”C:\ Documents and Settings \ jhsilva \ Desktop \ Monte Carlo \ Teste.py“,第41行,在generateRandomNumbers中 list_subs [n] [4] = np.random .normal(list_subs [n] [1],list_subs [n] [2]) IndexError:列表分配索引超出范围
代码
def generateRandomNumbers(list_subs):
for n in range(len(list_subs)):
string = list_subs[n][3]
string = string.lower()
if(string == "normal"):
list_subs[n][4] = np.random.normal(list_subs[n][1], list_subs[n][2])
print("Numero gerado:",list_subs[n][4])
variables = [v for v in variables if v not in special]
list_subs=[[0 for col in range(6)] for row in range(len(variables)-1)]
#This prints fine
print(len(list_subs))
#this prints fine too
print(list_subs[0][4])
for n in range(len(variables)):
if n>0:
(media,desviopadrao,distribuicao) = eval(input("For variable "+variables[n]+" input: median, std, distr \n"))
list_subs[n-1] = [variables[n], media, desviopadrao, distribuicao]
N = eval(input("Qual o numero de iteracoes que deseja:"))
Var = []
for n in range(N):
generateRandomNumbers(list_subs)
Var.append(calcEq(formula))
**其中**是否给你例外?什么是*完整*追溯? –
不要使用'string'作为变量名称,也不要使用InitialCaps作为变量;如果'list_sub [n]'没有3个元素会发生什么? –
我将list_subs []初始化为6x变量矩阵。我添加了4个字段,然后在generateRandomNumbers中尝试填充第五个字段。 – humberto