繁体   English   中英

如何一次性生成多个9位随机数并在python中为其添加前缀数字

[英]How to generate multiple 9 digit random numbers in one go and add a prefix number to them in python

我想一次在python中生成多个( n数字) 9 digit随机数,然后向这些数字中的每个数字添加前缀数字(例如1)(使它们成为10个数字),然后将其写入文件中? 我知道如何使用以下方法生成一个随机数:

import random
random.randint(100000000,999999999)

但是,如何在将它们写入文件之前一次性生成多个数字,然后向每个数字添加预定的前缀数字呢?

在这里,我要处理10个随机生成的数字,并针对您想要多少个数字做,

import random
for i in range (10):
    ang = random.randrange(100000000,999999999)
    print int("1"+str(ang))

您可以执行以下操作:

import random
file = open("output.txt", "ab")

def generate_random(n):
    for i in range(n):
        number = random.randint(1100000000, 1999999999)    #No need to ppend 1 after generating number.
        file.write(str(number)+"\n")

generate_random(10)

因此,输出文件如下所示:

1972697009
1588689225
1801344328
1405227028
1801903655
1868723502
1358721529
1394641572
1104858492
1694223145

希望这可以帮助。

听起来您可能对random.sample感兴趣。 但是,除非总体中存在重复的值,否则样本显式仅产生唯一值。 这可能是您想要的,也可能不是。

使用示例,您可以执行以下操作:

import random

prefix = 1 # or something like "#1" if that's what you want
digits = 9
num_samples = 9
values = random.sample(range(10**digits), num_samples)
strings = ["{}{:0{}}".format(prefix, v, digits) for v in values]

with open("yourfile.txt", "w") as f:
    print(*strings, sep="\n", file=f)

只需选择最后10位数字范围内的9个数字的随机样本即可。 这也可以确保结果列表中的每个数字都是唯一的。

import random

numbers = xrange(1000000000, 2000000000)
sample = random.sample(numbers, 9)
print(sample)

输出:

[1705109241, 1634244584, 1769529233, 1858322249, 1266131804, 1019067146,
 1781176897, 1274126811, 1216604448]

暂无
暂无

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

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