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

2024-04-18 03:38:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我该如何移除像这样的字符串的一部分

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

那就是我想的样子?你知道吗

编辑: 我知道这不管用我想知道什么管用。因为你不能在str()中使用“-”


Tags: 字符串in编辑ifbluewordsstryellow
3条回答

使用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)

从另一个角度来看,实际上不能移除字符串的一部分,因为字符串(在Python中)是不可变的——它们不能被修改(for good reason)。这意味着没有赋值(mystring[0] = 'f')。你知道吗

你能做的就是构建一个全新的字符串,去掉它的特定部分。这实现了同样的目标。你知道吗

这其实很重要,因为这意味着

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

它本身什么都不做(注意没有赋值-这只是构建一个新字符串,然后将其丢弃)。学习这个不变性(和易变性)的概念是学习的关键-它将帮助你避免许多错误。你知道吗

可以使用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)]

相关问题 更多 >