小编典典

如何从 Python 中的一组字符串中删除特定的子字符串?

all

我有一组字符串set1,其中的所有字符串set1都有两个特定的子字符串,我不需要并且想要删除它们。
示例输入:
set1={'Apple.good','Orange.good','Pear.bad','Pear.good','Banana.bad','Potato.bad'}
所以基本上我希望从所有字符串中删除.good和子字符串。我尝试了什么:.bad

for x in set1:
    x.replace('.good','')
    x.replace('.bad','')

但这似乎根本不起作用。输出绝对没有变化,它与输入相同。我尝试使用for x in list(set1)而不是原来的,但这并没有改变任何东西。


阅读 106

收藏
2022-05-25

共1个答案

小编典典

字符串是不可变的。str.replace创建一个
字符串。这在文档中有所说明:

str.replace(old, new[, count])

返回字符串的 副本 ,其中所有出现的子字符串 old 替换为 new 。[…]

这意味着您必须重新分配集合或重新填充它(使用集合理解更容易重新分配)

new_set = {x.replace('.good', '').replace('.bad', '') for x in set1}
2022-05-25