如何用Python获取所有ASCII字符的列表?
我想要一个类似下面这样的东西:
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'