我想用一个基本的for循环来填充Python中的值列表,但是我希望这些值是按概率计算的,以便在(toy)等式1中计算值的时间的p%和在等式2中计算值的时间的100-p%。你知道吗
到目前为止我得到的是:
# generate list of random probabilities
p_list = np.random.uniform(low=0.0, high=1.0, size=(500,))
my_list = []
# loop through but where to put 'p'? append() should probably only appear once
for p in p_list:
calc1 = x*y # equation 1
calc2 = (x-y) # equation 2
my_list.append(calc1)
my_list.append(calc2)
您已经生成了一个概率列表
p_list
,它对应于您要生成的my_list
中的每个值。python的方法是通过三元运算符和列表理解:如果我们把它扩展成一个适当的
for
循环:如果我们想变得更像Python,关于
calc1
和calc2
,我们可以把它们做成lambdas:或者,根据函数的
x
和y
的不同(假设它们不是静态的),您甚至可以通过两个步骤来理解:其他的答案似乎是假设你想要保持计算好的机会。如果你想要的只是一个结果列表,其中等式1在p%的时间内使用,等式2在100-p%的时间内使用,那么这就是你所需要的:
我采用了对原始代码进行最小更改和易于理解语法的方法:
相关问题 更多 >
编程相关推荐