4

str.strip()Pythonでcharの代わりにリストを渡す方法はありますか? 私はこのようにしてきました:

unwanted = [c for c in '!@#$%^&*(FGHJKmn']
s = 'FFFFoFob*&%ar**^'
for u in unwanted:
  s = s.strip(u)
print s

望ましい出力、この出力は正しいですが、上記のコーディング方法よりも洗練された方法が必要です。

oFob*&%ar
4

2 に答える 2

7

Strip とその仲間は一連の文字を表す文字列を取るので、ループをスキップできます。

>>> s = 'FFFFoFob*&%ar**^'
>>> s.strip('!@#$%^&*(FGHJKmn')
'oFob*&%ar'

(これの欠点は、fn.rstrip(".png")多くのファイル名で機能するように見えるが、実際には機能しないことです)

于 2013-07-22T08:17:22.810 に答える
4

途中から要素を削除したくないので、そのまま使用できます。

>>> 'FFFFoFob*&%ar**^'.strip('!@#$%^&*(FGHJKmn')
'oFob*&%ar'

それ以外の場合は、 を使用しstr.translate()ます。

>>> 'FFFFoFob*&%ar**^'.translate(None, '!@#$%^&*(FGHJKmn')
'oobar'
于 2013-07-22T08:16:13.547 に答える