假设我希望变量a_1,a_2,a_3,a_4是来自均匀分布U(0,100)的随机数。我可以写
import random
a_1 = random.uniform(0,100)
a_2 = random.uniform(0,100)
a_3 = random.uniform(0,100)
a_4 = random.uniform(0,100)
但我想知道是否有更有效的方法来做到这一点。我尝试了以下内容,
import random
for i in range(4):
a_i = random.uniform(1,100)
print(a_i)
然而,这不起作用。例如,当我稍后调用a_1时,它表示未定义a_1。我该如何解决这个问题?
答案 0 :(得分:4)
将随机值放入列表中,然后按索引访问成员:
>>> import random
>>> a = [random.uniform(1,100) for _ in range(4)]
>>> a
[71.4615087249735, 19.04308860149112, 40.278774122696014, 69.18947997939686]
>>> a[0]
71.4615087249735
>>> a[2]
40.278774122696014
除非你有一个非常非常好的理由,否则动态定义变量是很难证明的。
答案 1 :(得分:1)
如果您不想使用列表,可以使用解包功能
import random
up, down, strange, charm = [random.uniform(1,100) for _ in range(4)]
答案 2 :(得分:1)
看来你需要范围内的数字(0,100),如果你想在一个范围内(或其他可迭代的)生成随机整数 试试这个。 以防您需要更具体
import random
numberOf_intRequired=4
random_int=random.sample(range(0,100),numberOf_intRequired)