если какое-либо множественное условие python

У меня есть два списка: список1 и список 2 с несколькими строками.

list1 = ('building1', 'building2')

list2 = ('07:00', '07:15', '07:30', '7:45', '8:00')

allbox[i].text = ('justastring with building1 and blah blah blah 8:00')

Мне нужно проверить это условие: (как действовать только при выполнении двух условий?) Я думал, что ниже правильно, но это не так.

В настоящее время, если выполняется одно условие, выполняется doSomething(). Я хочу выполнить doSomething() только при соблюдении двух условий.

Относится ли «если есть» к двум условиям?

if any (items in allbox[i].text for items in list1) 
   and (items1 in allbox[i].text for items1 in list2):
   doSomething()

person luuu    schedule 16.08.2018    source источник
comment
Ваш вопрос не ясен.   -  person Moses Koledoye    schedule 16.08.2018
comment
что не так с if any(item in allbox[i].text for items in list1) and any(item in allbox[i].text for item in list2):?   -  person Ma0    schedule 16.08.2018
comment
поэтому вы хотите, чтобы allbox[i].text имел хотя бы один общий элемент с обоими списками. Верно?   -  person Ma0    schedule 16.08.2018
comment
что такое i? что именно вы подразумеваете под «только при двух условиях»?   -  person anishtain4    schedule 16.08.2018
comment
'building1' и '8:00' должны быть включены в строку для выполнения doSomething()   -  person luuu    schedule 16.08.2018
comment
С другой стороны, это кортежи, а не списки.   -  person Moses Koledoye    schedule 16.08.2018


Ответы (1)


any не "принадлежит" if - это не особый синтаксис, а обычная функция:

>>> any([True, False])
True
>>> any([False, False])
False

Он возвращает True тогда и только тогда, когда хотя бы один из элементов списка можно считать «истинным».

Ваш второй список будет непустым, а непустой список считается "истинным".

Поскольку any — это функция, вы также можете применить ее ко второму списку:

if     any(items in allbox[i].text for items in list1) 
   and any(items1 in allbox[i].text for items1 in list2):
person molbdnilo    schedule 16.08.2018
comment
идеально! Спасибо - person luuu; 16.08.2018