我需要为单词列表生成所有6位数字 这段代码会起作用吗?
from random import randint
list = [111111]
print ('111111')
while True:
number = randint(100000,999999)
if not number in list:
list.extend(str(number))
print(number)
答案 0 :(得分:0)
不要随意尝试数字,然后一次添加一个字符(查看append()
而不是extend()
),只需将range()
对象发送到list()
即可:
numbers = list(range(100000, 1000000))
请注意,我已将其称为numbers
而不是list
,以避免屏蔽list()
。
如果您希望将每个数字作为字符串,请将它们映射到字符串:
numbers = list(map(str, range(100000, 1000000)))
答案 1 :(得分:0)
你的方法可行,但速度很慢。我建议使用列表推导来生成数字列表。如果您需要将其随机化,则随机模块中会有一个随机方法。
from random import shuffle
#if you wanted just numbers
x_all_numbers = [i for i in range(100000, 999999)]
#if you wanted strings of different numbers
x_str_numbers = [str(i) for i in range(100000, 999999)]
print(x_all_numbers[0:10])
shuffle(x_all_numbers)
print(x_all_numbers[0:10])
为了表明这将有效,我将输出包括在内:
[100000, 100001, 100002, 100003, 100004, 100005, 100006, 100007, 100008, 100009]
[783780, 170070, 270425, 119709, 194098, 617834, 740368, 420370, 993130, 712673]