所以我试图在Python中的List上执行以下操作。
p = []
p.append(1)
K=4
en=0.0
lambda1=0.8
mu1=1
for i in range (1, K+1):
p[i] = p[i-1] * (lambda1 / mu1)
en += (i * p[i])
prob_arrival += p[i-1] * lambda1
我明白我哪里出错了。基本上我需要累积填充列表。现在我得到一个错误,因为IndexError:列表赋值索引超出范围。 我该如何解决这个问题?
答案 0 :(得分:0)
你的for循环出错了。 Python列表从0开始,以len(yourArray)结束 - 1.我认为你打算输入
for x in range(0,K):
# do stuff
答案 1 :(得分:0)
您尝试访问的列表只包含1个元素p[i]
和p[i-1]
i
为1
,而不实际插入任何值到该位置。这会导致您看到的IndexError
。您应该在for
循环中将值附加到列表中。您可以使用-1
索引访问列表中的最后一行。示例 -
p = [1]
K=4
en=0.0
lambda1=0.8
mu1=1
prob_arrival = 0 #Or some other default value
for _ in range (0, K):
p.append(p[-1] * (lambda1 / mu1))
en += (i * p[-1])
prob_arrival += p[-2] * lambda1
我还将p = []; p.append(1)
简化为p=[1]
。