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

Python 计算一行中列表中返回1的元素数,python,Python,我有一个非常基本和简单的问题,但出于某种原因,我无法理解它。我有以下python代码: counter = 0 for el in mylist: if self.check_el(el): counter += 1 我想把它排成一行。这是可能实现的吗?是的,这里有一个选项: counter = sum(1 for el in mylist if self.check_el(el)) 是的,这里有一个选择: counter = sum(1 for el in myli

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

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

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

是的,这里有一个选项:

counter = sum(1 for el in mylist if self.check_el(el))

是的,这里有一个选择:

counter = sum(1 for el in mylist if self.check_el(el))
或者,如果您知道check_el始终返回布尔值:

sum(map(self.check_el, my_list))
或者,如果您知道check_el始终返回布尔值:

sum(map(self.check_el, my_list))
我建议

lenlistfilterself.check_el,我的列表 它过滤掉所有未实现自我检查的元素,将过滤对象转换为列表,然后获取所述列表的长度。如果您想迭代元素,filterself.check\el,mylist是可编辑的。

我建议

lenlistfilterself.check_el,我的列表
它过滤掉所有未实现自我检查的元素,将过滤对象转换为列表,然后获取所述列表的长度。如果你想迭代元素,filterself.check_el,mylist是可编辑的。

考虑到目前为止发布的更简单的方法,我认为这是一个巨大的过度杀伤力。考虑到目前为止发布的更简单的方法,我认为这是一个巨大的过度杀伤力。