【问题标题】:if any multiple condition python如果有多个条件python
【发布时间】:2018-08-16 14:23:12
【问题描述】:

我有两个列表: 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()

【问题讨论】:

  • 你的问题不清楚。
  • if any(item in allbox[i].text for items in list1) and any(item in allbox[i].text for item in list2): 有什么问题?
  • 所以你希望allbox[i].text 至少有一项与两个列表相同。对吗?
  • 什么是i? “仅在两个条件下”到底是什么意思?
  • 'building1' 和 '8:00' 必须包含在字符串中才能执行 doSomething()

标签: python if-statement any


【解决方案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):

【讨论】:

  • 完美!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多