【发布时间】:2019-09-28 08:16:56
【问题描述】:
我知道我应该像下面的代码那样为随机数编写代码,但我不知道如何生成唯一号码,例如我想一次从一个列表中生成 3 个唯一电话号码,我该怎么做做吗?
import random
# last numbers of the phone numbers are in order, 1,2,3,4,5,6
myList = [60165651, 60175652, 60156523, 60135354, 60159535, 60192326]
for x in range(5):
print(random.choice(myList))
----------------------------------------------- ------
另一个问题是,如果我在数字的开头输入零,我会得到一个错误:令牌无效!
例如:
myPhoneList = [060165651, 60175652, 60156523, 60135354, 60159535, 60192326]
【问题讨论】:
-
您正在尝试sample输入数字列表,而不是generate它(作为输出)。
-
而对N个唯一项进行抽样称为无替换抽样。请参阅
random.sample的文档 -
第二期:将零放在数字的开头告诉 Python 它是八进制(base-8),但是你的数字不能包含数字 8,9,这就是它抛出错误的原因。与this 重复。因此,如果您真的想要一个带前导零的十进制电话号码,请使用字符串列表,而不是整数。
-
有一个特殊的模块
faker来生成一个假数据。您也可以使用它来获取假号码。