如何在Python中获取10个随机值?

-1 投票
5 回答
12477 浏览
提问于 2025-04-20 09:43

我刚开始学习编程,遇到了随机数生成的问题。我可以用“randint”这个函数生成随机数,但我不知道怎么生成一组随机数。比如说,我想得到10个随机数。

from random import randint
x = randint(1, 100)
y = randint(1, 100)
isFailedTest = (5<=x<=15) and (10<=y<=11)
selected_test = [x,y]
while (isFailedTest == False):

我可以一次生成1个随机数,但不能一次生成10个。这里的1个数是指二维坐标,比如(x,y) = (10,20)。我想在满足我的条件后,得到10个随机数(x,y)。我该怎么做呢?我对编程还很陌生,所以不知道该怎么解决这个问题。任何帮助、建议或推荐都非常感谢。谢谢!

5 个回答

0

NumPy应该能解决这个问题

np.random.randint(low=1, high=100, size=10)       
1

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在程序中使用这些数据。这个过程就像是从冰箱里拿食材,然后用这些食材做饭一样。

当我们提到“数据处理”时,通常是指对数据进行整理、分析或者转换,以便更好地使用。比如,你可能会把一些杂乱无章的信息整理成一个表格,这样看起来就清晰多了。

在编程中,我们常常使用一些工具和库来帮助我们处理数据。这些工具就像厨房里的刀具、锅具,能够让我们更方便地完成任务。

有时候,处理数据的过程可能会遇到一些问题,比如数据格式不对,或者数据缺失。这就像在做饭时发现缺少某种调料一样,需要想办法解决。

总之,数据处理是编程中非常重要的一部分,它帮助我们把原始数据变得有用,就像把食材变成美味的菜肴。

from random import randint
r = []
N = 10
for x in range(N):
    a = randint(5,15)   # rand number between 5 and 15
    b = randint(10,11)  # rand number between 10 and 11
    r.append((a,b))

# r <-- contains N tuples with random numbers
1

你为什么不直接这样做呢:

from random import randint
randoms = []
for i in range(10):
    randoms.append((randint(1,100),randint(1,100)))

这样的话,randoms 就会是一个包含10个整数的数组,这些整数是随机生成的,范围在1到100之间(包括1和100)。

为了更清楚地说明:这里发生的事情是,你先创建了一个空的列表,叫做 randoms。然后,for循环会执行十次,每次都会往 randoms 列表里添加一对新的随机整数。

6

简单的解决方案

array = [(randint(1, 100), randint(1, 100)) for i in range(10)]

更好的解决方案

下面的解决方案更加灵活,可以重复使用。

from functools import partial
from random import randint


def randints(count, *randint_args):
    ri = partial(randint, *randint_args)
    return [(ri(), ri()) for _ in range(count)]


print(randints(10, 1, 100))
3

需求 - “这里的1个数字代表一个二维数字,比如(x,y) = (10,20)。我想要得到10个随机的数字对(x,y)。”

>>> from random import randint as r
>>> array = [ (r(1,100), r(1,100)) for i in xrange(10)]

撰写回答