如何删除字符串的一部分,例如
Blue = 'Blue '
Yellow = 'Yellow'
Words = Blue + Yellow
if Blue in Words:
Words = Words - Yellow
这就是我认为的样子?
编辑:我知道它不会起作用我想知道什么会起作用。因为你不能在 str() 中使用 '-'
如何删除字符串的一部分,例如
Blue = 'Blue '
Yellow = 'Yellow'
Words = Blue + Yellow
if Blue in Words:
Words = Words - Yellow
这就是我认为的样子?
编辑:我知道它不会起作用我想知道什么会起作用。因为你不能在 str() 中使用 '-'
您可以使用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)]
从不同的角度来看,您实际上不能删除字符串的一部分,因为字符串(在 Python 中)是不可变的——它们不能被修改(有充分的理由)。这意味着没有分配 ( mystring[0] = 'f'
)。
您可以做的是构建一个全新的字符串,并删除它的特定部分。这实现了相同的目标。
这实际上非常重要,因为它意味着
mystring.replace('m', 'f')
就其本身而言,什么都不做(请注意,没有赋值 - 这只是构建一个新字符串,然后将其丢弃)。学习这个不变性(和可变性)的概念对于学习是必不可少的——它将帮助您避免许多错误。
使用替换功能:
if Blue in Words:
Words = Words.replace(Yellow, '')
如果 Words 是一个列表,则可以执行以下操作:
if Blue in Words:
Words = [word for word in Words if word != Yellow]
或相同但使用删除:
if Blue in Words:
Words.remove(Yellow)