我的6位数字代码会起作用吗?

时间:2015-11-29 05:12:03

标签: python

我需要为单词列表生成所有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)

2 个答案:

答案 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]