0

次のような文字列の一部を削除するにはどうすればよいですか

Blue = 'Blue '
Yellow = 'Yellow'
Words = Blue + Yellow
if Blue in Words:
    Words = Words - Yellow

それは私がそれがどのように見えるかと思ったものですか?

編集:私はそれが機能しないことを知っています私は何が機能するか知りたいです。str()で「-」を使用できないため

4

3 に答える 3

6

str.replace空の文字列とテキストを交換するために使用できます。

Words = Words.replace(Yellow,'')

これは次のように変換されることに注意してください。

"The Yellow Herring"

簡単に:

"The Herring"

(置換は文字列のどこでも行われます)。'Yellow'文字列の末尾からのみ削除する場合は.endswith、とスライスを使用できます。

if Blue in Words and Words.endswith(Yellow):
    Words = Words[:-len(Yellow)]
于 2013-03-13T01:44:17.213 に答える
3

別の観点から見ると、文字列 (Python では) は不変であるため、実際には文字列の一部を削除することはできません。変更することはできません (正当な理由により)。これは割り当てがないことを意味します ( )。mystring[0] = 'f'

できることは、特定の部分を削除して完全に新しい文字列を作成することです。これにより、同じ目標が達成されます。

これは実際には非常に重要です。

mystring.replace('m', 'f')

それ自体では何もしませ(割り当てがないことに注意してください - これは単に新しい文字列を作成してから破棄します)。この不変性 (および可変性) の概念を学ぶことは不可欠です。多くの間違いを避けるのに役立ちます。

于 2013-03-13T01:48:56.303 に答える
1

置換機能を使用する:

if Blue in Words:
    Words = Words.replace(Yellow, '')

Wordsがリストである場合は、次の操作を実行できます。

if Blue in Words:
   Words = [word for word in Words if word != Yellow]

または同じですが、removeを使用します。

if Blue in Words:
   Words.remove(Yellow)
于 2013-03-13T01:44:58.890 に答える