Python-在循环中使用re-sub无法正常工作

时间:2019-03-19 15:47:20

标签: python regex list

我有一个包含电影名称的列表: Movie List

以及有关电影的另一个问题列表: List of questions

我的目标是遍历问题列表,每当函数在电影列表中的问题中找到名称时,将名称更改为“ MOVIE”。 目前,我可以为每个问题做到这一点: def remove_movie_name_1(text):

    for i in tqdm(range(len(movies))):
       return re.sub(movies[42], 'MOVIE', text)
remove_movie_name_1(tq[21])

通过这种方式,我可以更改它,例如“蒂姆·艾伦在《玩具总动员3》中扮演的角色是什么?”到“蒂姆·艾伦(Tim Allen)在电影中扮演什么角色?”

当我尝试将其应用于整个列表时,我使用了以下代码:

def remove_movie_name(text):
for i in tqdm(range(len(movies))):
    return re.sub(movies[i], 'MOVIE', text)

for i in tqdm(range(len(tq))):
tq[i] = remove_movie_name(tq[i])  

但是这段代码没有任何改变,我看不出问题出在哪里。 谢谢。

1 个答案:

答案 0 :(得分:1)

def remove_movie_name(text):
    for i in tqdm(range(len(movies))):
        return re.sub(movies[i], 'MOVIE', text)

return立即退出该功能。您的循环只会运行一次。