【问题标题】:Looping a value into a list (changing value)将值循环到列表中(更改值)
【发布时间】:2015-09-10 23:06:34
【问题描述】:

我试图生成一个包含 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

【问题讨论】:

    标签: python list loops


    【解决方案1】:

    你缺少一个结束括号:

    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)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-14
      • 2021-10-09
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 2022-01-21
      • 2023-04-04
      相关资源
      最近更新 更多