增加数组元素测试的表现力

eri*_*ork 4 python performance readability

我喜欢Python的表现力.但是,我不能像我想的那样表达一切紧凑.例如,我经常写这个:

  def is_everything_okay(some_array):
    for s in some_array:
      if not is_okay(s):
        return False
    return True
Run Code Online (Sandbox Code Playgroud)

但那就是Java,而不是Python.如何提高该代码片段的表现力(以及可能的执行速度)?

Sve*_*ach 5

使用内置功能all():

all(is_okay(s) for s in some_array)
Run Code Online (Sandbox Code Playgroud)

  • @erikb:当然它也是这样 - 它还应该做什么?它稍微快一些,因为它是用C语言编写的,但是对于这个例子,它仍然需要为每个`s`调用Python函数`is_okay()`. (2认同)
  • 它无法重新排序测试:定义的语义是它按顺序对s进行操作. (2认同)