将值循环到列表中(更改值)

时间:2015-06-24 16:15:38

标签: python list loops

我试图生成一个360值的列表,由提供的公式决定。我一直在" Elist"上出现语法错误。部分突出显示这是使用python 3.4。

SRate = [5,5,5]    
Bots = 120
NQueue = 3
TSim = 100
Exp = 2
DDistance = 1
Lambda = 40 # 120/3 = 40

import random

AvgSRate = 5

def Initilization(AvgSRate,Lambda,Exp,x):
    Elist = []
    for a in range(1,361):
        x = (Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(random.random()) - 1)
        Elist.append(x) # <--- Error is in this line.
    return Expectation_list

1 个答案:

答案 0 :(得分:4)

你错过了一个结束语:

x = (Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(random.random()) - 1)  <- 

只需添加一个结束语,您的错误就会消失:

x = (Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(random.random()) - 1))  

确保Expectation_list也在某处定义,或者更有可能返回Elist

你也在重新分配x,所以你实际上并没有使用传入的参数x所以如果你不使用它就删除它,如果你只想返回Elist然后你可以返回一个列表comp:

def Initilization(AvgSRate, Lambda, Exp):
return [(Lambda / (AvgSRate ** Exp)) * (1 + (1 / 10) * (2 * (random.random()) - 1))
        for a in range(1, 361)]