迭代替换字符串

时间:2015-10-02 13:49:21

标签: python python-3.x

我有两个文件:一个是术语列表,另一个是文本文件。我想打印文本文件而没有第一个文件中的条款。

我试过了:

import codecs  
import ast
list_file = codecs.open(list_file).read()
text_file = codecs.open(text_file).read()
import ast
li = ast.literal_eval(list_file)
for l in li:
    print(text_file.replace((l, ""))

这里的问题是迭代。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

我认为正则表达式有点过分了:

for l in li:
    text_file = text_file.replace(l, '')

请记住,在python字符串中不可变意味着它们无法就地编辑。这意味着每次更换时,您都会使用替换执行字符串的副本,并使用此值重新分配text_file字符串。

答案 1 :(得分:0)

出于某种原因,您要重复替换列表,而不是文本文件行。

我会使用RE module进行替换,如下所示:

subre = re.compile("|".join(li))

我想它应该是:

for tl in text_file:
  print re.sub(subre, "", tl)