我怎样才能在Python的方式选择随机字符? [重复](How can I select ran

2019-08-16 22:43发布

这个问题已经在这里有一个答案:

  • 生成Python中的随机字母 19回答

我想生成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]

有随机选择一个角色的更好的办法?

Answer 1:

通常的方式是random.choice()

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


Answer 2:

试试这个:

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


Answer 3:

random()是不是对自己的功能。 在Python 3,传统的方法是:

import random
import string

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

string.letters是在现场队伍,并在Python 3被删除。



文章来源: How can I select random characters in a pythonic way? [duplicate]
标签: python random