0

重複の可能性:
python.rstripは1つの追加文字を削除します

私は次のようにvtype定義された文字列を持っています

vtype = "vidis.fit"

ファイナルを剥ぎ取りたいdis.fitので

vtype.rstrip("dis.fit")

しかし、最終的な結果は、私が期待/望んでいたものでvはなく、です。vi私はこれについて少し混乱しています、誰か?

編集

みんな、ありがとう。そもそもそれが私を混乱させた理由は、空白にしか関係がないのに、名前lstripと名前がいくつかのシーケンスを示唆しているように見えるからだと思います。rstrip

4

3 に答える 3

2

rstrip実際には、削除する特定の文字列ではなく、削除する文字列の最後にある文字のシーケンスを取ります。渡された文字のシーケンスにあるiため、削除されます。i

たとえば、の文字の順序は重要でrstripはありません。

>>> vtype = "vidis.fit"
>>> vtype.rstrip("dis.fit")
'v'
>>> vtype.rstrip("ditfs.")
'v'

また、キャラクターがその中にいる回数もありません。

>>> vtype.rstrip("ditffffsssss.")
'v'

ドキュメントが指定するように:

chars引数は接尾辞ではありません。むしろ、その値のすべての組み合わせが削除されます

編集: そして、楽しみのために、「文字列の最後にある文字列を削除するにはどうすればよいですか」という問題を本当に解決したい場合は、rfindスライスで使用します。

>>> vtype[:vtype.rfind("dis.fit")]
'vi'
于 2012-07-16T16:46:26.073 に答える
2

「v」の後の「i」は、「dis.fit」の文字であるため削除されています。toの引数stripは、削除する部分文字列ではなく、削除する文字のリストです。

于 2012-07-16T16:46:53.000 に答える
1

他の回答に示されているように、rstripは、特定の文字列ではなく、一連の文字を削除します。

"vidis.fit".replace("dis.fit", "") 

「dis.fit」シーケンスが複数回表示されたり、別の位置に表示されたりしない限り、実際に実行しようとしていることを実行します。その場合、おそらく正規表現の解決策を見つけることができます。

于 2012-07-16T16:52:23.593 に答える