从其他字符串中删除字符串

时间:2013-03-13 01:43:35

标签: python if-statement

如何删除字符串的一部分,如

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

这就是我认为的样子?

编辑: 我知道这不起作用我想知道什么会起作用。因为你不能在str()

中使用' - '

3 个答案:

答案 0 :(得分: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)]

答案 1 :(得分:3)

从不同的角度来看,实际上无法删除字符串的一部分,因为字符串(在Python中)是不可变的 - 它们无法修改({{ 3}})。这意味着没有分配(mystring[0] = 'f')。

可以做的是构建一个全新的字符串,其中包含删除的特定部分。这实现了同样的目标。

这实际上非常重要,因为它意味着

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

本身,没有(注意没有赋值 - 这只是构建一个新的字符串,然后抛弃它)。学习这种不变性(和可变性)的概念对于学习是必不可少的 - 它将帮助你避免许多错误。

答案 2 :(得分:1)

使用replace function

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

如果单词是列表,则可以执行以下操作:

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

或者相同,但使用删除:

if Blue in Words:
   Words.remove(Yellow)