Python - Использование re-sub в цикле не работает - PullRequest
0 голосов
/ 19 марта 2019

У меня есть список с названиями фильмов: Список фильмов

И еще список вопросов о фильмах: Список вопросов

Моя цельэто цикл по списку вопросов, и каждый раз, когда функция находит имя в вопросе, которое находится в списке фильмов, меняет имя на «ФИЛЬМ».В настоящее время я могу сделать это для каждого вопроса: 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 »?»на «Какую роль сыграл Тим Аллен в MOVIE?»

Когда я пытался применить его ко всему списку, я использовал этот код:

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 Ответ

1 голос
/ 19 марта 2019
def remove_movie_name(text):
    for i in tqdm(range(len(movies))):
        return re.sub(movies[i], 'MOVIE', text)

return немедленно выходит из функции. Ваш цикл запускается только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...