繁体   English   中英

在python中创建随机数列表

[英]creating list of random numbers in python

我已经用零填充了已知长度的列表。 我试图通过列表返回并在每个索引处放置0-1的随机浮点数。 我正在使用while循环来执行此操作。 但是,代码并没有输入随机数。列表仍然是零,我不明白为什么。 我插入了一个print语句,它告诉我列表仍然是零。 我将不胜感激任何帮助!

randomList = [0]*10
index = 0
while index < 10:
    randomList[index] = random.random()
    print("%d" %randomList[index])
    index = index + 1

列表是随机的:

>>> randomList
[0.46044625854330556, 0.7259964854084655, 0.23337439854506958, 0.4510862027107614, 0.5306153865653811, 0.8419679084235715, 0.8742117729328253, 0.7634456118593921, 0.5953545552492302, 0.7763910850561638]

但是您使用"%d" % randomList[index]其元素打印为迭代器,因此所有这些值都舍入为零。 您可以使用“%f”格式化程序来打印浮点数:

>>> print("%.5f" % randomList[index])
0.77639

'{:M:Nf} .format'

>>> print("{.5f}".format(randomList[index]))
0.77639   

你为什么不在while后打印清单?

...code...
print randomList

产量

[0.5785868632203361, 0.03329788023131364, 0.06280615346379081, 0.7074893002663134, 0.6546820474717583, 0.7524730378259739, 0.5036483948931614, 0.7896910268593569, 0.314145366294197, 0.1982694921993332]

如果您希望print语句有效,请改用%f

列表理解更容易,更快:

randomList = [random.random() for _ in range(10)]
import random
from pprint import pprint

l = []

for i in range(1,11):
    l.append( int(random.random() * (i * random.randint(1,1e12))) )

pprint(l)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM