如何删除字符串的一部分,如
Blue = 'Blue '
Yellow = 'Yellow'
Words = Blue + Yellow
if Blue in Words:
Words = Words - Yellow
这就是我认为的样子?
编辑: 我知道这不起作用我想知道什么会起作用。因为你不能在str()
中使用' - '答案 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)
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)