是否有包含所有ascii字符列表的Python库?

时间:2011-05-05 00:42:46

标签: python ascii

如下所示:

import ascii

print ascii.charlist()

会返回类似[A,B,C,D ...]

的内容

7 个答案:

答案 0 :(得分:133)

string常量可能就是你想要的。 (docs

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

如果您想要所有可打印的字符:

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

答案 1 :(得分:26)

这是:

[chr(i) for i in xrange(127)]

答案 2 :(得分:12)

ASCII定义128个字符,其字节值范围为0到127(含)。因此,要获取所有ASCII字符的字符串,您可以执行

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

只有其中一些是可打印的,但可以通过

在Python中访问可打印的ASCII字符
import string
string.printable

答案 3 :(得分:3)

for i in range(0,128):
    print chr(i)

试试这个!

答案 4 :(得分:3)

由于ASCII可打印字符是一个非常小的列表(值为32到127之间的字节),因此在您需要时很容易生成:

>>> for c in (chr(i) for i in range(32,127)):
...     print c
... 

!
"
#
$
%
... # a few lines removed :)
y
z
{
|
}
~

答案 5 :(得分:0)

您可以在没有模块的情况下执行此操作:

    characters = list(map(chr, range(97,123)))

键入characters,它应该显示["a","b","c", ... ,"x","y","z"]。对于大写使用:

    characters=list(map(chr,range(65,91)))

任何范围(包括使用范围步骤)都可以用于此,因为它使用了Unicode。因此,增加range()以将更多字符添加到列表中。
map()chr()的每次迭代中调用range()

答案 6 :(得分:-4)

不,没有,但你可以轻松制作一个:

    #Your ascii.py program:
    def charlist(begin, end):
        charlist = []
        for i in range(begin, end):
            charlist.append(chr(i))
        return ''.join(charlist)

    #Python shell:
    #import ascii
    #print(ascii.charlist(50, 100))
    #Comes out as:

    #23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc