Python:将随机数放入列表中

时间:2013-05-20 17:40:11

标签: python list random

创建一个名为my_randoms的'list',其中包含0到100之间的10个随机数。

这是我到目前为止所做的:

import random
my_randoms=[]
for i in range (10):
    my_randoms.append(random.randrange(1, 101, 1))
    print (my_randoms)

不幸的是,Python的输出是这样的:

[34]
[34, 30]
[34, 30, 75]
[34, 30, 75, 27]
[34, 30, 75, 27, 8]
[34, 30, 75, 27, 8, 58]
[34, 30, 75, 27, 8, 58, 10]
[34, 30, 75, 27, 8, 58, 10, 1]
[34, 30, 75, 27, 8, 58, 10, 1, 59]
[34, 30, 75, 27, 8, 58, 10, 1, 59, 25]

它会像我要求的那样生成10个数字,但它会一次生成一个。我做错了什么?

9 个答案:

答案 0 :(得分:71)

您可以使用random.sample通过一次调用生成列表:

import random
my_randoms = random.sample(xrange(100), 10)

在0到99的(包括)范围内生成数字。如果你想要1到100,你可以使用它(感谢@martineau指出我复杂的解决方案):

my_randoms = random.sample(xrange(1, 101), 10)

答案 1 :(得分:38)

import random
my_randoms = [random.randrange(1, 101, 1) for _ in range(10)]

答案 2 :(得分:17)

修复print语句

的缩进
import random

my_randoms=[]
for i in range (10):
    my_randoms.append(random.randrange(1,101,1))

print (my_randoms)

答案 3 :(得分:5)

这里我使用sample方法生成0到100之间的10个随机数。

注意:我使用的是Python 3 range函数(不是xrange)。

import random

print(random.sample(range(0, 100), 10))

输出放入 列表

[11, 72, 64, 65, 16, 94, 29, 79, 76, 27]

答案 4 :(得分:4)

这很晚了,但如果有人发现这很有帮助。

您可以使用列表理解。

rand = [random.randint(0, 100) for x in range(1, 11)]
print(rand)

输出:

[974, 440, 305, 102, 822, 128, 205, 362, 948, 751]

干杯!

答案 5 :(得分:2)

ImportError: libCppController.so: cannot open shared object file: No such file or directory 不适用于3.x。

xrange()是指定间隔中整数的理想选择:

numpy.random.randint().tolist()

您也有 #[In]: import numpy as np np.random.seed(123) #option for reproducibility np.random.randint(low=0, high=100, size=10).tolist() #[Out:] [66, 92, 98, 17, 83, 57, 86, 97, 96, 47] 个浮点数:

np.random.uniform()

答案 6 :(得分:1)

import random

a=[]
n=int(input("Enter number of elements:"))

for j in range(n):
       a.append(random.randint(1,20))

print('Randomised list is: ',a)

答案 7 :(得分:0)

简单的解决方案:

indices=[]
for i in range(0,10):
  n = random.randint(0,99)
  indices.append(n)

答案 8 :(得分:-3)

my_randoms = [randint(n1,n2) for x in range(listsize)]