2016-07-10 7 views
1

私はPythonの初心者です。交換機能を使用しないでAREDTUXYに置き換える必要があります。例:Appleはツリーの背後にあります。後:TpplXはbXinY T tuxXである。 お手伝いできますか?おかげPythonのReplace関数を使用せずに複数のアルファベットを置換する

+0

置き換え機能を使用できないのはなぜですか? – Soviut

+0

辞書を使用してある文字から別の文字にマッピングし、マッピングを使用して新しい文字列を作成することができます。問題が発生した場合は、それを試してコードを投稿してください。 – wwii

+0

私は初心者です。この質問には既存の関数を使用することはできません。 :-( – Pydummy

答えて

2

あなたはstr.translatestring.maketransを使用することができます。

import string 
match = "ARED" 
replace = "TUXY" 
translator = string.maketrans(match, replace) 

s = "Apple is behind a tree." 
s.translate(translator) # => 'Tpple is behind a tree.' 

ただし、これは大文字と小文字が区別されることがわかります。

あなたは、大文字と小文字を区別しない交換をしたい場合は、 だけでなく小文字を連結:Pythonの3のために

match = "AREDared" 
replace = "TUXYtuxy" 
translator = string.maketrans(match, replace) 

s = "Apple is behind a tree." 
s.translate(translator) # => 'Tpplx is bxhiny t tuxx.' 

を、strクラスは独自のmaketrans方法があります。したがって、代わりに translator = str.makestrans(match, replace)を使用してください。stringモジュールは不要です。

+0

こんにちは、Rushyさん、ありがとうございます。文字列をインポートしていますか? – Pydummy

+0

独自の文字列モジュールを書くか、その書き方を見てください – EL3PHANTEN

+0

私に示したコードを試しましたが、エラーメッセージ "AttributeError: 'モジュール'オブジェクトに 'maketrans'属性がありません。 – Pydummy

関連する問題