如何以Python方式选择随机字符?
我想用python生成一个10个字母数字字符的长字符串。下面是从字母数字字符列表中选择随机索引的一部分 我的计划:如何以Python方式选择随机字符?,python,random,Python,Random,我想用python生成一个10个字母数字字符的长字符串。下面是从字母数字字符列表中选择随机索引的一部分 我的计划: 有没有更好的随机选择角色的方法 通常的方法是随机选择 >>> import string >>> import random >>> random.choice(string.ascii_letters + string.digits) 'v' random本身不是一个函数。Python 3中的传统方式是: import ra
有没有更好的随机选择角色的方法 通常的方法是随机选择
>>> import string
>>> import random
>>> random.choice(string.ascii_letters + string.digits)
'v'
random本身不是一个函数。Python 3中的传统方式是:
import random
import string
random.choice(string.ascii_letters + string.digits)
string.letters取决于区域设置,在Python 3中已删除 试试这个:
def getCode(length = 10, char = string.ascii_uppercase +
string.digits +
string.ascii_lowercase ):
return ''.join(random.choice( char) for x in range(length))
运行:
如果您有一个列表,那么您可以这样做:
>>> set_list = ['a','b','c','d']
>>> getCode(2, ''.join(set_list))
'da'
如果要使用特殊符号,可以使用字符串的标点符号:
>>> print string.punctuation
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
string.letters有点棘手,因为它取决于语言环境,在Python3中不再可用。我会使用string.ascii_字母+string.digits作为OP的用例。Perfect适合我真正的sweet:我知道,这只是一个算法,将使用标准的python伪生成器+1 sweet,将接受前面的答案,不过:DWhy是string_ascii_大写+string.ascii_小写的必要吗?Python内置了string.ascii_字母,以便在这种情况下使用。@RicardoAltamirano是的,你是对的。这是我在工作中使用的代码。所以我在这里给出了我的代码
>>> set_list = ['a','b','c','d']
>>> getCode(2, ''.join(set_list))
'da'
>>> print string.punctuation
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~