python random.sample(“abc”,3)。如何使用正则表达式代替“abc”

时间:2012-08-03 08:43:53

标签: python regex

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

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

上面的代码生成长度为10的随机数,其字母从字母a-z填充。我如何在那里使用正则表达式,如[a-z]?

2 个答案:

答案 0 :(得分: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']

答案 1 :(得分:1)

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

>>> from pyparsing import srange
>>> srange('[a-z]')
u'abcdefghijklmnopqrstuvwxyz'
>>> srange('[a-z0-9]')
u'abcdefghijklmnopqrstuvwxyz0123456789'