Python统计嵌套列表中指定元素出现次数及按位置统计的方法
嵌套列表指定元素出现次数统计方案
原代码异常原因
你直接对外层列表调用count('test')时,外层列表的元素都是二级子列表,不存在直接的字符串test,因此返回结果为0。
需求1:统计全嵌套列表中test的总出现次数
通过生成器表达式遍历所有子列表,累加每个子列表内test的统计值即可,实现代码如下:
my_list = [['test', 'idk', 'blah'], ['test', 'idk', 'blah'], ['test', 'idk', 'blah'], ['test', 'idk', 'blah'], ['test', 'idk', 'blah']] total_count = sum(sublist.count('test') for sublist in my_list) print(total_count) # 输出结果:5
该方案支持子列表内存在多个test的场景,会将所有位置的匹配项全部计入总数。
需求2:仅统计每个子列表第一个位置的test出现次数
遍历所有子列表,仅校验子列表首位元素是否匹配test,匹配则计数加1,实现代码如下:
# 基础版本(适用于所有子列表长度≥1的场景) first_pos_count = sum(1 for sublist in my_list if sublist[0] == 'test') print(first_pos_count) # 输出结果:5 # 兼容空子列表的优化版本(避免索引越界报错) first_pos_count_safe = sum(1 for sublist in my_list if len(sublist) > 0 and sublist[0] == 'test')
内容的提问来源于stack exchange,提问作者user16341274
相关产品推荐
相关产品推荐

