すべてのASCII文字のリストを含むPythonライブラリはありますか?


98

以下のようなもの:

import ascii

print ascii.charlist()

これは[A、B、C、D ...]のようなものを返します

回答:


162

string定数は、あなたが望むかもしれません。(ドキュメント

>>>インポート文字列
>>> string.ascii_uppercase
「ABCDEFGHIJKLMNOPQRSTUVWXYZ」

すべての印刷可能な文字が必要な場合:

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

3
ASCIIはato からではzなく、0から127までのコードです。これは文字だけではありません。
Andrey、

4
string.ascii_letters全体のシバンです!
ジェタニズム

1
@jathanism-またはstring.letters... string.printableは@Andreyが参照していたものに近い(ただし同じではない)。
Joe Kington、

OPが実際にすべての1つの文字を必要とするかどうかに依存すると思います。string.printableすべての印刷可能な文字を提供します。
ドングリ'05

質問のタイトルは明確です(ASCIIセット全体を指します)が、例ではOPが本当に文字を必要としているように見えます。
Andrey、

32

ここにあります:

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

ことを考えるとString、モジュールは廃止され、これが最善の答えは
デボンM

@ChuckFulminata、stringモジュールは非推奨ではありません。参照してください。これを例えば、。
dkasak 2016年

@dkasakよろしくお願いしstringます。忘れてしまいました。モジュールの一部のみが非推奨になっています
Devon M

1
が削除されて名前が変更されたrange(127)ため、Python 3ではを呼び出す必要があることも覚えておいてください。また、Python 2でUnicode文字を取得するには、Python 3で呼び出す必要がありますrangexrangeunichr(i)chr(i)
Benj

1
それは0-127の範囲(128)であるべきではありませんか?
アナダクト

14

ASCIIは、バイト値の範囲が0から127までの128文字を定義します。したがって、すべてのASCII文字の文字列を取得するには、次のようにします。

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

それらの一部だけが印刷可能ですが、印刷可能なASCII文字はPythonで次のようにアクセスできます。

import string
string.printable

4

ASCIIの印刷可能な文字はかなり小さなリスト(32〜127の値を持つバイト)であるため、必要なときに簡単に生成できます。

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

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

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

これを試して!


ASCIIになりますrange(0, 128)
dan04

@ dan04 @lucemia ASCII 0〜127、拡張コードは最大255
Andrey

3
@Andrey:ASCIIは0〜127なので、Pythonではrange(0、128)です。(他のいくつかの回答での一般的なエラー...)
jtniehof

1

モジュールなしでこれを行うことができます:

    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()


-7

いいえ、ありませんが、簡単に作成できます。

    #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

11
受け入れられた回答が明確に言及してから3年後string.printable「いいえ、ありません」と主張しますか?
Tobias Kienzler 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.