代码之家  ›  专栏  ›  技术社区  ›  Alessandro Power

在Python中压缩多个条件

  •  2
  • Alessandro Power  · 技术社区  · 10 年前

    假设我有一个数字列表 mylist 如果 聚酯聚酯 大于10。我可以试试

    if mylist[0] > 10 and mylist[1] > 10 and ... :
        do something
    

    但这显然非常麻烦。我想知道Python是否有办法在if语句中压缩多个条件。我试过了

    if mylist[i] > 10 for i in range(len(mylist)):
        do something
    

    但这返回了一个错误。

    我使用的是Python 3.4。

    3 回复  |  直到 10 年前
        1
  •  7
  •   Kevin    10 年前

    你的尝试很接近。你只需要 all 函数来检查表达式的结果。

    if all(mylist[i] > 10 for i in range(len(mylist))):
        do something
    

    顺便说一句,考虑直接迭代列表项,而不是其索引。

    if all(item > 10 for item in mylist):
    
        2
  •  1
  •   Tim Abhishek Kumar    10 年前

    这样做

    if all(x > 10 for x in myList):
    
        3
  •  0
  •   chthonicdaemon    10 年前

    答案是 all :

    if all(item > 10 for item in mylist):
       do something