首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中生成密码

在python中生成密码
EN

Stack Overflow用户
提问于 2010-10-04 19:13:23
回答 11查看 79.6K关注 0票数 75

我想用python生成一些字母数字的密码。一些可能的方法包括:

import string
from random import sample, choice
chars = string.letters + string.digits
length = 8
''.join(sample(chars,length)) # way 1
''.join([choice(chars) for i in range(length)]) # way 2

但我两个都不喜欢,因为:

length 1仅选择了唯一字符,您不能生成密码,其中

  • way > len(chars)
  • way 2我们有未使用的i变量,我找不到避免

的好方法

那么,还有其他好的选择吗?

附注:这里我们使用timeit进行了100000次迭代的测试:

''.join(sample(chars,length)) # way 1; 2.5 seconds
''.join([choice(chars) for i in range(length)]) # way 2; 1.8 seconds (optimizer helps?)
''.join(choice(chars) for _ in range(length)) # way 3; 1.8 seconds
''.join(choice(chars) for _ in xrange(length)) # way 4; 1.73 seconds
''.join(map(lambda x: random.choice(chars), range(length))) # way 5; 2.27 seconds

所以,获胜者是''.join(choice(chars) for _ in xrange(length))

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3854692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档