2017-11-13 17 views
0

こんにちは、私はPythonには新しく、文字列をPythonでASCIIに変換しようとしていますが、その方法はわかりません。Pythonで文字のリストをASCIIに変換するには?

私のコードの関連部分はおそらくこれです

string = input(“Enter a line of text: “) 
l = list(string) 
return(l) 

それは別の文字だからだから、代わりにそれらの文字列全体のリストに入力しますが、その後、私はASCIIに変換する方法がわかりません。私はord()を使用しなければならないことを知っていますが、入力が何であるかわからないので、それが複数の文字であるときにはどのように行うのか理解できません。

どうすればいいですか?

+0

文字列はすでに文字の集合です。 2行目は必要ありません。 –

+1

注:OPがPython3( 'input()'に注意)を使用していると仮定すると、結果はASCII値のリストではなく、Unicodeコードポイントのリストになります。 –

答えて

0

各文字をループしてASCIIに変換するには、forループを作成する必要があります。

既に文字列内の各文字のリストであるlがあります。したがって、lをループし、リストの各文字をord()を使用してASCII値に変換します。

0
string = input("enter string: ") 
for i in string: 
    if i != ' ':   # ignoring space char 
     print(i, ord(i)) 

入力

sample string 

出力

s 115 
a 97 
m 109 
p 112 
l 108 
e 101 
s 115 
t 116 
r 114 
i 105 
n 110 
g 103 

出力であっても別のリストに保存することができます。

0

ので、同様にあなたは、list comprehensionを使用することがあります:文字列が反復可能なので、あなたは中間ステップをスキップすることができ、という

string = input(“Enter a line of text: “) 
list_of_characters = list(string) 
list_of_ord_values = [ord(character) for character in list_of_characters] 

注:

list_of_ord_values = [ord(character) for character in string] 
0

はここでやっての時間複雑効率的な方法ですそれ。あなたのリストを仮定するとのような単一の文字は次のとおりです。

l = ['a', 'b', 'c'] ascii_values = map(ord, l)

これは、その指定されたASCII値に各文字をマップします。

0

Python 2を使用している場合、文字列はデフォルトでasciiとしてエンコードされます。あなたのpython 3を使用している場合は、組み込みの文字列方式のエンコードを使用してASCIIに文字列を変換することができます

ascii = string.encode('ascii') 

あなたは、これがリストとして表現したい場合は、のように、個別にエンコードしてみてくださいASCII文字のデフォルト反復表現は整数です。 (xはb 'バイナリ文字列' 'でxを試してください)

ascii_chars = [char.encode('ascii') for char in string] 
関連する問題