2016-04-10 9 views
-3
val = [] 

for c in f: 

    val.append(ord(c)) 

val = [w - 5 if w > 20 else w for w in val] 

元のテキストファイルには、スペースが多い文章が含まれています。テキストファイルをASCIIコードに変換するときには、スペースもASCIIコードに変換されます。リストから空白を削除するにはどうすればよいですか? Python

+4

あなたが読んでいるファイルのサンプルと正確な予想出力を表示できますか? – idjaw

+2

[最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)を入力してください。私はあなたのコードがタイトルの質問と何をしているのか分かりません。 – timgeb

+0

@timgebコードは彼が文字をintに変換することを示しています。それは完全に関連するIMOです。 – user161778

答えて

-1

現在、あなたのforループは、fからvalにあるすべての文字を付加します。 、あなたのforループで

val = [] 

for c in f: 
    if c != ' ': 
     val.append(ord(c)) 

val = [w - 5 if w > 20 else w for w in val] 
2

f.replace(' ','')に変更fを:変数cは、あなたは、単にif文で事前に' 'の存在を確認することができますので、追加されようとしている文字を保持しています。それはスペースを削除します。

このコードは動作するはずです:

val = [] 

for c in f.replace(' ',''): 

    val.append(ord(c)) 

val = [w - 5 if w > 20 else w for w in val] 
+1

置き換え(2つのループを使用する)を行うのではなく、文字を確認するのが一番良いと思います。彼はすでに弦をループしています。 – user161778

0

c in ford(c)から私はfstrであると仮定しています。 if cフィルタはスペースを排除します。

codes = (ord(c) for c in f if c) 
# codes is a genex. Now you can use it any way you want, e.g 
codes_ = [code-5 if code > 20 else code for code in codes] 
関連する問題