Как прочитать список в списке?
Скажите, пожалуйста, как можно пройтись по списку и вернуть ответ.
Вот мой список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('Ну что ж')