计算一行中列表中返回1的元素数

2024-04-25 11:31:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常基本和简单的问题,但出于某种原因,我无法理解它。我有以下python代码:

counter = 0
for el in mylist:
    if self.check_el(el):
        counter += 1

我想把它排成一行。这是可能实现的吗


Tags: 代码inselfforifcheckcounterel
3条回答

是的,这里有一个选择:

counter = sum(1 for el in mylist if self.check_el(el))
sum(map(lambda el: bool(self.check_el(el)), my_list))

或者,如果您知道check_el总是返回布尔值:

sum(map(self.check_el, my_list))
counter = sum(int(self.check_el(el)) for el in mylist)

相关问题 更多 >