2016-04-01 26 views
3

以下の2行を使用して文字列から ' - '文字を削除しようとしていますが、元の文字列を返します。下の2行を実行すると、shaとsha2は両方の文字列です。何か案は?Pythonの文字列から特殊文字を削除する

sha = hash_dir(filepath) # returns an alpha-numeric string 

print sha.join(c for c in sha if c.isalnum()) 

sha2 = "-7023680626988888157" 

print sha2.join(c for c in sha2 if c.isalnum()) 

答えて

5

Pythonの文字列は不変です - .joinは、文字列を変更しないだろう、それは(あなたが印刷された見ているものです)新しい文字列を作成します。

あなたが実際にそれがローカル名前空間に変更された文字列のように見えるようにするために名前に結果を再バインドする必要があります。

sha2 = ''.join(c for c in sha2 if c.isalnum()) 

はまたx、表現x.join(...)にはなるものであることに注意してくださいjoinに渡される反復可能コードの各項目の間に挿入されます。この場合、あなたの文字の間に余分なものを挿入したくないので、xは空の文字列でなければなりません。あなたは

+0

が問題だったこと、ありがとうございます。 – iheartcpp

5

をもしかして:

print ''.join(c for c in sha2 if c.isalnum()) 
関連する問題