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

时间:2021-01-21 14:00:59

标签: 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[x], "")

这个方法没有改变字符串中的任何东西 旧字符串也将每次在不同的 for 循环中更改,我试图从银行对帐单中删除不必要的单词,以使它们更整洁。 我希望能够保留号码和姓名,但删除其余部分 例如,我想: new_string = NUM​​1204012 JOHN 我也试过使用正则表达式

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

但是这个方法删除了remove_list中每个字符的实例

2 个答案:

答案 0 :(得分:1)

您将更新后的字符串存储在 new_string 中。这就是字符串没有改变的原因。将其替换为 old_string

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())

说明

  • 完全替换了 old string 内容。
  • 最后一个 strip 方法用于去除字符串开头和结尾的空格。

输出

NUM1204012 JOHN

答案 1 :(得分:0)

随着您的实施,您需要执行以下操作

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, "")

但是这个解决方案不是最优的。 您在 remove_list 中也有错别字

相关问题