Python如何统计嵌套列表指定层级位置的元素出现次数
嵌套列表指定位置值统计方案
适用场景
固定结构为[[[], X], [[], X], ...]的三层嵌套列表,统计指定X的出现次数,无需手动写循环和计数器,适配大规模数据处理场景。
标准库实现方案
Python标准库提供了两个优化过的工具组合可以实现该需求,底层均为C语言实现,执行效率远高于Python层手写循环,适合大规模数据使用。
方案1:全量频次统计(适合需要统计多个目标值的场景)
使用collections.Counter搭配operator.itemgetter实现:
from collections import Counter from operator import itemgetter # 示例数组 x = [[[0,0,1,0,2,3],-1],[[-1,1,1,0,2,5],-1],[[0,0,1,0,2,1],-1],[[0,0,-1,0,2,3],0]] # 提取所有中间层第二个位置的值并统计频次 count_map = Counter(map(itemgetter(1), x)) # 查询-1的出现次数 print(count_map.get(-1, 0)) # 输出结果为3
方案2:单目标值统计(适合仅统计单个值的场景,内存开销更低)
使用生成器表达式搭配内置函数sum实现,无需额外导入其他库:
x = [[[0,0,1,0,2,3],-1],[[-1,1,1,0,2,5],-1],[[0,0,1,0,2,1],-1],[[0,0,-1,0,2,3],0]] target = -1 count = sum(1 for item in x if item[1] == target) print(count) # 输出结果为3
内容的提问来源于stack exchange,提问作者silal anwar
相关产品推荐
相关产品推荐

