Python 如何从字符串列表中删除单词?

Python 如何从字符串列表中删除单词?,python,string,list,Python,String,List,我希望能够从字符串中删除列表中存储的单词。 目前我的代码如下: old_string = "BANK TRANSACTION NUM1204012 JOHN" remove_list = ['BANK TRASACTION', 'PAYMENT TO', 'PAYMENT FROM', 'BANK FEE'] for x in range(len(remove_list)): new_string = old_string.replace(remove_list[

我希望能够从字符串中删除列表中存储的单词。 目前我的代码如下:

old_string = "BANK TRANSACTION NUM1204012 JOHN"
remove_list = ['BANK TRASACTION', 'PAYMENT TO', 'PAYMENT FROM', 'BANK FEE']
for x in range(len(remove_list)):
      new_string = old_string.replace(remove_list[x], "")
此方法没有更改字符串中的任何内容 在不同的for循环中,旧字符串每次都会发生变化,我试图从银行对账单中删除不必要的单词,以便更整洁地呈现它们。 我希望能够保留号码和姓名,但删除其余的 例如,我想:new_string=num204012 JOHN 我也尝试过使用正则表达式

new_string = re.sub(remove_list[x], '', old_string)

但是此方法删除了remove_list中字符的每个实例。要使用您的实现,您需要执行以下操作

old_string = "BANK TRANSACTION NUM1204012 JOHN"
remove_list = ['BANK TRANSACTION', 'PAYMENT TO', 'PAYMENT FROM', 'BANK FEE']
new_string = old_string
for to_remove in remove_list:
      new_string = new_string.replace(to_remove, "")
但这个解决方案不是最优的。
您在删除列表中也有一个输入错误,您正在将更新的sting存储在新字符串中。这就是字符串没有更改的原因。将其替换为
旧字符串

old_string = "BANK TRANSACTION NUM1204012 JOHN"
remove_list = ['BANK TRANSACTION', 'PAYMENT TO', 'PAYMENT FROM', 'BANK FEE']
for x in remove_list:
      old_string = old_string.replace(x, "")

print(old_string.strip())
解释

  • 完全替换了
    旧字符串
    内容
  • 最后一个
    strip
    方法用于删除字符串开头和结尾的空格
输出

NUM1204012 JOHN

1) 按长度按降序对移除列表中的项目进行排序,2)在循环中逐个移除所有项目修改新的\u字符串并在循环之前传递用
old\u字符串初始化的新\u字符串。如果你必须检查确切的单词,你只需要一个正则表达式。问题是,我实际上是使用openpyxl从电子表格中获取我的第一个字符串,所以我只是将该字符串放入它自己的字符串中,然后将其放入循环中。现在可以用了,谢谢