gpt4 book ai didi

python - 从字符串末尾删除特定单词

转载 作者:行者123 更新时间:2023-11-28 22:11:55 26 4
gpt4 key购买 nike

我试图从字符串末尾删除特定单词,直到字符串末尾不再有这些单词。

我尝试了以下方法:

companylist=['dell inc corp', 'the co dell corp inc', 'the co dell corp inc co']

def rchop(thestring, ending):
if thestring.endswith(ending):
return thestring[:-len(ending)]
return thestring

for item in companylist:
item = rchop(item,' co')
item = rchop(item,' corp')
item = rchop(item,' inc')

我期待以下结果:

dell
the co dell
the co dell

但我得到的是这些结果:

dell
the co dell corp
the co dell corp

如何使结果不依赖于替换词的顺序,以便我的结果代表从字符串末尾开始的所有替换词的穷尽?

最佳答案

如果它在其他单词列表中,您可以使用它来删除最后一个单词:

import re

string = "hello how are you"
words_to_remove = ["are", "you"]

space_positions = [x.start() for x in re.finditer('\ ', string)]
print(space_positions)
for i in reversed(space_positions):
if string[i+1:] in words_to_remove:
string = string[:i]

print(string)

哪些输出:

[5, 9, 13]
hello how

如果你只对删除最后一个词感兴趣,不管它是什么你都可以使用这个:

import re

string = "hello how are you?"

space_positions = [x.start() for x in re.finditer('\ ', string)]
print(space_positions)
for i in reversed(space_positions):
print(string[:i], '---', string[i:])

哪些输出:

[5, 9, 13]
hello how are --- you?
hello how --- are you?
hello --- how are you?

string[:i] 部分是第 i 个空格之前的所有内容,而 string[i:] 部分是第 i 个空格之后的所有内容。

关于python - 从字符串末尾删除特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55332796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com