str = str.replace('x', '') がすべての x を削除することを理解しています。
jxjrxxtzxz
しかし、文字列があり、文字列を作成する最初と最後の x のみを削除したいとしましょうjjrxxtzz
。これは文字列固有ではありません。その特定の例だけでなく、すべての文字列を処理できるようにしたいと考えています。
編集: x が削除したい唯一の文字であると仮定します。ありがとうございました!
str = str.replace('x', '') がすべての x を削除することを理解しています。
jxjrxxtzxz
しかし、文字列があり、文字列を作成する最初と最後の x のみを削除したいとしましょうjjrxxtzz
。これは文字列固有ではありません。その特定の例だけでなく、すべての文字列を処理できるようにしたいと考えています。
編集: x が削除したい唯一の文字であると仮定します。ありがとうございました!
きれいではありませんが、これはうまくいきます:
def remove_first_last(c, s):
return s.replace(c,'', 1)[::-1].replace(c,'',1)[::-1]
使用法:
In [1]: remove_first_last('x', 'jxjrxxtzxz')
Out[1]: 'jjrxxtzz'
かなり簡単な方法の 1 つは、削除する文字を使用find
しrfind
て検索することです。
s = 'jxjrxxtzxz'
# Remove first occurrence of 'x'
ix = s.find('x')
if ix > -1:
s = s[:ix]+s[ix+1:]
# Remove last occurrence of 'x'
ix = s.rfind('x')
if ix > -1:
s = s[:ix]+s[ix+1:]