在random.shuffle输出中设置最小/最大长度?

时间:2013-12-30 19:04:10

标签: python random

所以为了处理我新学到的python,我写了一个随机密码的小工具。

最终我进入了一个列表,让我们说15个字符串。我问它写了这么多,用户可以输入他想要获得多少密码,以及多长时间。 - 而不是我想问他什么是min和max len,而不是set len,并在我的结果中获得全部范围。

这是我到目前为止所做的:

items = ['5', '4', 'Y', 'T', 'R', 'E', 'h', 'g', 'f', 'd', '7', '1', '9', 'z', 'q', 'x']

x=int(raw_input("how many passwords would you like?:"))
z=int(raw_input("how long would you like the password to be?:"))

print("the list of possible passwords you received is:")
for i in range (x):
    random.shuffle(items)

,输出类似于:

TR1Eg47f9
5gRf9q7Ed
hxfE5gR4d
hE14x9Tz7
谢谢。

1 个答案:

答案 0 :(得分:2)

使用random.sample,您可以从列表中获取特定数量的项目。你可以这样做:

from random import sample
print(''.join(sample(items, x)))

问题与此相关,是x不能大于项目长度。您之前可以进行一些修复,重复列表中的项目,如下所示:

while len(items) < x:
    items += items