我想计算一个iterable中有多少成员满足给定条件。我想做的方式是明确和简单,最好是合理的优化。
我目前最好的想法是:
sum(meets_condition(x) for x in my_list)
以及
len([x for x in my_list if meets_condition(x)])
第一个是基于迭代器的,对于大列表来说可能更快。它和你用来测试任何东西的表格是一样的。然而,这取决于int(True)==1这一事实,这有点难看。
第二个对我来说似乎更容易阅读,但它不同于任何形式。
有没有更好的建议?我遗漏了什么图书馆功能吗?
Tags:
第一个
在我看来是完全可读的和Python式的。
如果你喜欢我喜欢的第二种方法
另一种方式可能是:
基于迭代器的方法很好。有一些细微的修改可以强调您正在计算的事实:
和往常一样,如果从代码中看不到意图,请将其封装在具有描述性名称的函数中:
列表倒计时
相关问题 更多 >
编程相关推荐