我有一组字符串set1,其中的所有字符串set1都有两个特定的子字符串,我不需要并且想要删除它们。 示例输入: set1={'Apple.good','Orange.good','Pear.bad','Pear.good','Banana.bad','Potato.bad'} 所以基本上我希望从所有字符串中删除.good和子字符串。我尝试了什么:.bad
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)而不是原来的,但这并没有改变任何东西。
for x in list(set1)
字符串是不可变的。str.replace创建一个 新 字符串。这在文档中有所说明:
str.replace
str.replace(old, new[, count]) 返回字符串的 副本 ,其中所有出现的子字符串 old 替换为 new 。[…]
str.replace(old, new[, count])
返回字符串的 副本 ,其中所有出现的子字符串 old 替换为 new 。[…]
这意味着您必须重新分配集合或重新填充它(使用集合理解更容易重新分配):
new_set = {x.replace('.good', '').replace('.bad', '') for x in set1}