我有两个列表: 具有多个字符串的list1和list 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()
答案 0 :(得分:2)
any
不“属于” if
-它不是特殊的语法,而是常规函数:
>>> any([True, False])
True
>>> any([False, False])
False
当且仅当至少一个列表元素可以被视为“ true”时,它返回True
。
您的第二个列表将为非空,并且非空列表被视为“ true”。
由于any
是一个函数,因此您也可以将其应用于第二个列表:
if any(items in allbox[i].text for items in list1)
and any(items1 in allbox[i].text for items1 in list2):