python3で、文字列を別の置き換える方法について。
replace
1 2 3 4 |
moji="ABCDEF" number = moji.replace("ABCDEF", "123456") print(number) #出力:123456 |
ただし、この方法ではあらかじめ決められている文字列を変換させることはできるが、標準入力された文字列を変換することができない。
変換するべき文字列が全て決まっているのなら良いが、どのような文字が入力されるかわからないときにはこれではうまくいかない。
1文字ごとに変換したい場合や、定期的に変換規則を変えたいときには大変な手間になりそうに感じる。
lamda
複数の規則によって文字を置き換えたい場合はlamda関数を使うことで実現できる。
1 2 3 4 5 |
moji = input() #入力する文字列:ABCDE x = {'A':'1','B':'2','C':'3','D':'4','E':'5','F':'6'} y = ''.join(list(map(lambda c: x.get(c,c), moji))) print(y) #出力:12345 |
まとめ
他にもリスト内包やtranslateを用いたりと複数の方法があるとのことなので改めて調べてみることにする。
変換する文字列をランダムにしたりと、文字列操作と言ってももっと奥が深そうなのでどんどんと勉強していきたい。
コメント