执行操作并在Python中插入列表

时间:2015-10-29 02:01:35

标签: python list

所以我试图在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:列表赋值索引超出范围。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

你的for循环出错了。 Python列表从0开始,以len(yourArray)结束 - 1.我认为你打算输入

for x in range(0,K):
    # do stuff

答案 1 :(得分:0)

您尝试访问的列表只包含1个元素p[i]p[i-1] i1,而不实际插入任何值到该位置。这会导致您看到的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]