如何统计指定元素在嵌套列表中的出现列表数并输出正确结果?
解决方案
修改后的代码如下:
four_in_one = [['David','Ellen','Ken'],['Peter','Ellen','Joe'],['Palow','Ellen','Jack'],['Lily','Elain','Ken']] for name in ['David','Ken','Kate']: i = 0 # 将计数器初始化移到外层循环,每个姓名单独统计 for each_list in four_in_one: if name in each_list: i += 1 print(name, i) # 遍历完所有子列表后再打印结果
运行后输出:
David 1 Ken 2 Kate 0
原代码的问题:
- 计数器
i被放在内层循环(遍历子列表的循环)里,每次遍历新的子列表都会重置为0,无法累计计数 - 找到姓名就立即打印,同一个姓名在多个子列表出现时会多次输出,且未统计到的姓名(如Kate)不会输出任何结果
优化说明:
- 将
i = 0移到外层循环,确保每个待统计姓名的计数从0开始,独立累计 - 把
print语句移到内层循环外面,遍历完所有子列表后再输出最终计数,保证每个姓名只输出一次统计结果
内容的提问来源于stack exchange,提问作者Mark K
相关产品推荐
相关产品推荐

