大多数Pythonic条件计数器

时间:2017-05-26 11:25:55

标签: python

我有一个列表,需要创建条件满足次数的计数。这样做会更加pythonic:

cnt = sum([1 for s in a_list if some_condition])

或者这更像是pythonic:

cnt = 0
  for s in a_list:
    if (some_condition):
      cnt += 1

3 个答案:

答案 0 :(得分:14)

都不是。

使用第一个,但不在内存中创建不必要的列表:

cnt = sum(1 for s in a_list if some_condition)

答案 1 :(得分:4)

你可以更简单地做到:

mail($to, $subject, $msg, $headers);

假设condition_func是某种将列表中的项目变为True或False的函数。

答案 2 :(得分:4)

使用True作为整数使用的事实是1

cnt = sum(some_condition(s) for s in a_list)