2

我正在尝试使用 random.sample 在 python 中生成随机数。这就是我编写代码的方式。

import random
r = "".join(random.sample("abcdefghijklmnopqrstuvwxyz", 10))

上面的代码生成长度为 10 的随机数,其字母由字母 az 填充。我怎样才能在那里使用像 [az] 这样的正则表达式?

4

2 回答 2

4

改用这个

>>> from string import ascii_lowercase, ascii_uppercase
>>> ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

如果要生成数字,可以使用range

>>> map(str, range(10))
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
于 2012-08-03T08:44:58.850 回答
1

如果您有方便的 pyparsing 模块,则可以使用 srange 方法将正则表达式字符集扩展为字符串:

>>> from pyparsing import srange
>>> srange('[a-z]')
u'abcdefghijklmnopqrstuvwxyz'
>>> srange('[a-z0-9]')
u'abcdefghijklmnopqrstuvwxyz0123456789'
于 2012-08-03T09:14:57.953 回答