我怎样才能用Python的方式选择随机字符?

2024-04-29 13:39:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用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]

有没有更好的随机选择角色的方法?


Tags: the字符串列表index字母数字randomall
3条回答

通常的方式是随机的

>>> import string
>>> import random
>>> random.choice(string.ascii_letters + string.digits)
'v'

试试这个:

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
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

random()本身不是一个函数。Python 3的传统方式是:

import random
import string

random.choice(string.ascii_letters + string.digits)

string.letters取决于区域设置,并在Python 3中被删除。

相关问题 更多 >