Python代码疑问:列表元素存入count_dict的机制及程序运行逻辑
这段Python代码的工作原理详解
先看原代码:
sample_list = [11, 45, 8, 11, 23, 45, 23, 45, 89] print("Original list ", sample_list) count_dict = dict() for item in sample_list: if item in count_dict: count_dict[item] += 1 # how was the data stored into the variable count_dict? else: count_dict[item] = 1 print("Printing count of each item ", count_dict)
核心逻辑拆解
初始化阶段:
sample_list是待统计的原始列表,包含多个重复元素。count_dict = dict()创建了一个空字典,用来存储每个元素的出现次数——字典的键对应列表里的元素,值对应该元素的出现次数。
循环统计阶段:
代码通过for循环逐个遍历sample_list里的元素:- 若当前取出的
item已经是count_dict的键(说明之前统计过这个元素),就把对应键的值加1(比如第二次遇到11时,把count_dict[11]从1改成2)。 - 若当前
item不在count_dict的键中(说明是第一次遇到这个元素),就给字典新增一组键值对:键为当前item,值设为1(代表该元素首次出现)。
- 若当前取出的
数据存储的实际过程:
拿代码执行的步骤举例:- 第一次取到11:
count_dict是空的,执行count_dict[11] = 1,此时字典变为{11: 1}。 - 第二次取到45:不在字典里,执行
count_dict[45] = 1,字典变为{11: 1, 45: 1}。 - 第三次取到8:同样新增,字典变为
{11: 1, 45: 1, 8: 1}。 - 第四次取到11:已在字典中,执行
count_dict[11] += 1,11对应的值变为2,字典变为{11: 2, 45: 1, 8: 1}。 - 后续元素按同样逻辑处理,直到遍历完整个列表。
- 第一次取到11:
最终结果:
遍历结束后,count_dict就存储了所有元素的出现次数,打印结果为{11: 2, 45: 3, 8: 1, 23: 2, 89: 1}。
内容的提问来源于stack exchange,提问作者Mohamed Ouni
相关产品推荐
相关产品推荐

