R语言 Python中的字母序列

7y4bm7vi  于 2023-04-27  发布在  Python
关注(0)|答案(5)|浏览(111)

Python中是否有内置的方法/模块来生成字母,例如内置的常量LETTERS或R中的常量字母?
R内置常量的作用是letters[n],如果n = 1:26,则产生字母表中的小写字母。
谢谢。

oyjwcjzk

oyjwcjzk1#

它被称为string.ascii_lowercase
如果你想选择 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)])
xwbd5t1u

xwbd5t1u2#

你可以像下面这样使用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']
ev7lccsx

ev7lccsx3#

有了上面的列表解析和引用,还有另一种方法:

>>> [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']
62lalag4

62lalag44#

还有一种方法,它会直接给予你一个字符串:

>>> bytearray(range(97,123)).decode("utf-8")
u'abcdefghijklmnopqrstuvwxyz'

(it python2和python3都可以使用,当然如果是python3,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'
rkkpypqq

rkkpypqq5#

对很多人来说更易读的是
map(chr,range(ord(“A”),ord(“Z”))

相关问题