Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何用lambda函数生成给定差分分布的随机数递增序列_Python_Loops_Lambda - Fatal编程技术网

Python 如何用lambda函数生成给定差分分布的随机数递增序列

Python 如何用lambda函数生成给定差分分布的随机数递增序列,python,loops,lambda,Python,Loops,Lambda,这是我第二次尝试去掉python脚本中的所有函数,只使用lambda。第一次尝试非常成功,这多亏了@vaultah和@hashcode55:,但这次有点复杂。代码如下: from numpy import * GammaShape, GammaScale = 4, 2.8 def getsequence(tmin,tmax): t=[tmin] while t[-1] < tmax: t.append( t[-1]+random.gamma(Gamma

这是我第二次尝试去掉python脚本中的所有函数,只使用lambda。第一次尝试非常成功,这多亏了@vaultah和@hashcode55:,但这次有点复杂。代码如下:

from numpy import *

GammaShape, GammaScale = 4, 2.8

def getsequence(tmin,tmax):
    t=[tmin]
    while t[-1] < tmax: 
        t.append( t[-1]+random.gamma(GammaShape, scale=GammaScale) )
    return t

print getsequence(1,100)

再次,我想知道是否有可能在不使用递归的情况下将此函数实现为lambda

“这是我第二次尝试摆脱python脚本中的所有函数,只使用lambda(s)”-为什么要这样做?这是一个大项目,许多lambda函数都位于树中,树定义了我的网络模型。经典函数在python代码内部,但在我的项目中,任何定义网络的东西都应该是“外部”python代码,以便更加灵活。检查我的模块confpluspy[github.com/rat-h/confpluspy]以了解原因。
lambda
仍然是Python代码,并且仍然定义普通Python函数。通过这种方式,您实际上并没有获得任何灵活性。查看您的github链接,我发现您使用的是自己的自定义解析器,我猜它不理解
def
。不过,您仍然完全依赖于Python,将
def
转换为
lambda
只能帮助解析器理解一些事情。它实际上并没有以任何方式将此文件与Python解耦。为什么不让你的配置文件只是普通的Python代码呢?是的,你是对的。但在我的代码中,网络参数类似于配置文件。脚本只是转换python对象(包括lambda)中的所有值,并将它们放入树(嵌套字典)中。然后脚本使用它们。如果要更改行为,只需编辑一个文件,而不必触摸脚本。
[1, 26.428496148321855, 37.98871619324888, 54.30245562952652, 64.30475755683086, 75.76820451443717, 78.62225615406405, 84.16795168540565, 90.64774821744882, 92.51415417744622, 113.42232642308159]