如何用Python获取所有ASCII字符的列表?

139 投票
7 回答
244353 浏览
提问于 2025-04-16 17:01

我想要一个类似下面这样的东西:

import ascii

print(ascii.charlist())

它会返回类似于 ["A", "B", "C", "D" ... ] 这样的结果。

7 个回答

21

ASCII是一种字符编码标准,它定义了128个字符,这些字符的字节值从0到127,包括0和127。想要得到所有ASCII字符的字符串,你可以这样做:

''.join(chr(i) for i in range(128))

在这128个字符中,只有100个被认为是可打印的。你可以通过以下方式访问这些可打印的ASCII字符:

import string
string.printable
39

这里是内容:

[chr(i) for i in range(128)]
236

你可以看看 string 模块 中的常量,这可能正是你需要的。

这里有所有的ASCII大写字母:

>>> import string
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

还有所有可以打印的ASCII字符:

>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

如果你想要ASCII标准中定义的每一个字符,可以使用 chr 函数:

>>> ''.join(chr(i) for i in range(128))
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f'

撰写回答