Python中是否有内置的方法/模块来生成字母,例如R中的内置常量LETTERS或字母常量?
R内置常量的作用为letters[n]
,其中n = 1:26
生成字母表的小写字母。
感谢。
答案 0 :(得分:24)
如果你想选择 n 许多随机小写字母,那么:
from string import ascii_lowercase
from random import choice
letters = [choice(ascii_lowercase) for _ in range(5)]
如果您想将其作为字符串而不是列表,请使用str.join
:
letters = ''.join([choice(ascii_lowercase) for _ in range(5)])
答案 1 :(得分:11)
您可以使用map
,如下所示:
>>> map(chr, range(65, 91))
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
>>> map(chr, range(97, 123))
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
>>> a = map(chr, range(65, 70))
>>> a
['A', 'B', 'C', 'D', 'E']
答案 2 :(得分:1)
使用列表推导和上面的参考,还有另一种方法:
>>> [chr(x) for x in range(97, 123)]
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
答案 3 :(得分:0)
还有另一种方法可以直接给您一个字符串:
>>> bytearray(range(97,123)).decode("utf-8")
u'abcdefghijklmnopqrstuvwxyz'
(它同时适用于python2和python3,如果是python 3,则不会显示u前缀)
如果您愿意的话,显然可以像其他答案一样将该字符串转换为列表,例如:
>>> [x for x in bytearray(range(97,123)).decode("utf-8")]
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
更改它以选择n个随机字母(允许重复)也很容易:
>>> import random
>>> n = 10
>>> bytearray(random.randint(97, 122) for x in range(n)).decode('utf-8')
'qdtdlrqidx'
或不重复:
>>> import random
>>> n = 10
>>> bytearray(random.sample(range(97, 123),n)).decode('utf-8')
'yjaifemwbr'