我想在python中生成一个10个字母数字字符的长字符串。因此,这是从字母数字字符列表中选择随机索引的一部分。
我的计划:
set_list = ['a','b','c' ........] # all the way till I finish [a-zA-Z0-9]
index = random() # will use python's random generator
some_char = setlist[index]
有没有更好的随机选择角色的方法?
答案 0 :(得分:13)
通常的方法是random.choice()
>>> import string
>>> import random
>>> random.choice(string.ascii_letters + string.digits)
'v'
答案 1 :(得分:4)
试试这个:
def getCode(length = 10, char = string.ascii_uppercase +
string.digits +
string.ascii_lowercase ):
return ''.join(random.choice( char) for x in range(length))
运行:
>>> import random
>>> import string
>>> getCode()
'1RZLCRBBm5'
>>> getCode(5, "mychars")
'ahssh'
如果您有一个列表,那么您可以这样做:
>>> set_list = ['a','b','c','d']
>>> getCode(2, ''.join(set_list))
'da'
如果你想使用特殊符号,你可以使用字符串的标点符号:
>>> print string.punctuation
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
答案 2 :(得分:2)
random()
本身不是一个功能。 Python 3中的传统方式是:
import random
import string
random.choice(string.ascii_letters + string.digits)
string.letters
取决于语言环境,并在Python 3中删除。