Как прочитать список в списке?

Скажите, пожалуйста, как можно пройтись по списку и вернуть ответ.

Вот мой список1, который списки2:

[['замечательный', 'аромат'],
['супер', 'аромат', 'отличный', 'свежак', 'на', 'лето'],
['оригинал', 'спасибо', 'большой'],
['идеальный', 'аромат'],
['товар', 'качественный'],
['аромат', 'совсем', 'не', 'стойкий'],
['разочаровать']]

Также у меня есть список3:

['обычный', 'упаковка', 'странно','скучный', 'вообще', 'пахнуть', 'звезда', 'оформление', 'свобода', 'деньга', 'разочаровать']

Я хочу проверить есть ли в списке1 списки2, которые содержат слова из списка3.

for advise in review:
     for wr in advise:
        if wr in new_freq_neg:
            print('Негативный отзыв')
        else:
            print('Ну что ж')

Но он выдает результат по каждому слову, а не в общем по списку2

Мне нужно, чтобы результат был:

Ну что ж
Ну что ж
Ну что ж
Ну что ж
Ну что ж
Негативный отзыв

Подскажите, пожалуйста, как можно сделать?


Ответы (3 шт):

Автор решения: Tehnorobot

Простой способ решения (Вводим флаг):

lst_1 = [['замечательный', 'аромат'],
['супер', 'аромат', 'отличный', 'свежак', 'на', 'лето'],
['оригинал', 'спасибо', 'большой'],
['идеальный', 'аромат'],
['товар', 'качественный'],
['аромат', 'совсем', 'не', 'стойкий'],
['разочаровать']]

lst_3 = ['обычный', 'упаковка', 'странно','скучный', 'вообще', 'пахнуть', 'звезда', 'оформление', 'свобода', 'деньга', 'разочаровать']


for i in lst_1:
    for j in i:
        if j in lst_3:
            flag = True
            break
        else:
            flag = False
            break
            
    if flag:
        print('Негативный отзыв')
    else:
        print('Ну что ж')

Вывод:

Ну что ж
Ну что ж
Ну что ж
Ну что ж
Ну что ж
Ну что ж
Негативный отзыв

Можно через генератор:

for i in lst_1:
    if any([x for x in i if x in lst_3]):
        print('Негативный отзыв')
    else:
        print('Ну что ж')
→ Ссылка
Автор решения: SergFSM

немного подправил ваш код:

for advise in review:
    for wr in advise:
        if wr in new_freq_neg:
            print('Негативный отзыв')
            break
    else:
        print('Ну что ж')

результат:

Ну что ж
Ну что ж
Ну что ж
Ну что ж
Ну что ж
Ну что ж
Негативный отзыв
→ Ссылка
Автор решения: SergFSM

подправил вариант с "генератором" предложенный Tehnorobot:

for i in lst_1:
    if any(x in lst_3 for x in i):
        print('Негативный отзыв')
    else:
        print('Ну что ж')
→ Ссылка