Python 中满足特定条件的元素计数


在本文中,我们将了解如何从 Python 列表中获取一些选定的元素。因此,我们需要设计一些条件,并且只有满足该条件的元素才会被选中,并打印它们的计数。

使用 in 和 sum

在这种方法中,我们使用 in 条件来选择元素,并使用 sum 来获取它们的计数。如果元素存在,则使用 1,否则对于 in 条件的结果,使用 0。

示例

 实时演示

Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
# Given list
print("Given list:\n", Alist)
cnt = sum(1 for i in Alist if i in('Mon','Wed'))
print("Number of times the condition is satisfied in the list:\n",cnt)

输出

运行以上代码将得到以下结果:

Given list:
['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
Number of times the condition is satisfied in the list:
3

使用 map 和 lambda

这里也使用了 in 条件,但也使用了 lambda 和 map 函数。最后,我们应用 sum 函数来获取计数。

示例

 实时演示

Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
# Given list
print("Given list:\n", Alist)
cnt=sum(map(lambda i: i in('Mon','Wed'), Alist))
print("Number of times the condition is satisfied in the list:\n",cnt)

输出

运行以上代码将得到以下结果:

Given list:
['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
Number of times the condition is satisfied in the list:
3

使用 reduce

reduce 函数将特定函数应用于作为参数提供给它的列表中的所有元素。我们将其与 in 条件一起使用,最终生成匹配条件的元素的计数。

示例

 实时演示

from functools import reduce
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
# Given list
print("Given list:\n", Alist)
cnt = reduce(lambda count, i: count + (i in('Mon','Wed')), Alist, 0)
print("Number of times the condition is satisfied in the list:\n",cnt)

输出

运行以上代码将得到以下结果:

Given list:
['Mon', 'Wed', 'Mon', 'Tue', 'Thu']
Number of times the condition is satisfied in the list:
3

更新于: 2020年6月4日

516 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告