【问题标题】:Inline for in expression evaluation内联表达式求值
【发布时间】:2012-02-28 19:44:04
【问题描述】:

有没有办法可以内联这个 for 循环?

already_inserted = True
for i in indexes:
    already_inserted = already_inserted and bitfield[i]

【问题讨论】:

    标签: python syntax for-loop list-comprehension


    【解决方案1】:

    all() 函数接受可迭代,并会自动遍历所有元素并将 bool 应用于每个元素。因此,写就足够了:

    already_inserted = all(bitfield)
    

    【讨论】:

      【解决方案2】:

      怎么样:

      already_inserted = all(bitfield[i] for i in indexes)
      

      【讨论】:

      • all 函数有两个优点:1) 当找到第一个 False 值时,它将短路计算并停止迭代;2)它是内置的,因此迭代完全在 Python VM 中的 C 代码中运行。
      【解决方案3】:
      already_inserted = all(bitfield[i] for i in indexes)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        • 1970-01-01
        • 2017-08-18
        • 2011-05-24
        • 1970-01-01
        相关资源
        最近更新 更多