我正在尝试使用random.sample在python中生成随机数。这就是我编写代码的方式。
import random
r = "".join(random.sample("abcdefghijklmnopqrstuvwxyz", 10))
上面的代码生成长度为10的随机数,其字母从字母a-z填充。我如何在那里使用正则表达式,如[a-z]?
答案 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'