按升序生成随机数?

2024-04-29 09:59:19 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在循环中以这样的升序生成随机数并将它们附加到列表中

12345号 12346 12347 12348..... 你知道吗

试试这个,这个代码会生成随机整数,需要它们按升序排列。你知道吗

lists = []
for z in range(3000):
    lists.append((randint(12345,13333)))

lists_1=[str(cell) for  cell in lists_phone]
print(lists_1)


Tags: 代码in列表forphonecellrange整数
3条回答

如果必须逐个生成它们,并且它们必须已按顺序排列:

lists = []
min = 12345
max = 13333
for z in range(3000):
    lists.append(max * z + (randint(min,max)))

lists_1=[str(cell) for  cell in lists_phone]
print(lists_1)

但也许你真正想要的是@Peter O.答案。你知道吗

numpy的版本以@Peter O的方式。如果您已经拥有numpy,您可以使用它来获得更好的性能:

import numpy as np
from timeit import Timer
from random import randint

print(min(Timer(lambda: [randint(12345, 13333) for _ in range(3000)].sort()).repeat(100, 100)))
print(min(Timer(lambda: np.random.randint(12345, 13333, 3000).sort()).repeat(100, 100)))

输出

0.5073430000000023
0.016132899999999673

Numpy的速度快了31倍

只需生成整数,然后对它们进行排序。在Python中,sort()对列表排序:

listvar = [randint(12345,13333) for _ in range(3000)]
listvar.sort()
print(listvar)

相关问题 更多 >