Python:用嵌套for循环实现字典对应列表元素计数
用嵌套for循环实现字典值的出现次数统计
需求说明:
现有字典my_dict,其值为列表;另有列表my_list。需要生成新字典new_dict,键与my_dict完全一致,值为my_dict对应列表中所有元素在my_list里的出现次数总和。比如my_dict中键'A'对应列表['A','B'],就需要统计my_list里'A'和'B'的出现次数之和。
示例输入:
my_dict = {'A': ['A', 'B'], 'B': ['C', 'D'], 'C': ['E', 'F']} my_list = ['A', 'D', 'A', 'C', 'F', 'F'] new_dict = {}
预期输出:
{'A': 2, 'B': 2, 'C': 2}
嵌套for循环实现代码
my_dict = {'A': ['A', 'B'], 'B': ['C', 'D'], 'C': ['E', 'F']} my_list = ['A', 'D', 'A', 'C', 'F', 'F'] new_dict = {} # 遍历原字典的每个键和对应的元素列表 for key, elements in my_dict.items(): total_count = 0 # 遍历当前键对应的每个元素,累加出现次数 for elem in elements: total_count += my_list.count(elem) # 将统计结果存入新字典 new_dict[key] = total_count print(new_dict)
代码说明
- 外层循环遍历
my_dict的键值对,每次拿到一个键key和它对应的元素列表elements。 - 初始化
total_count为0,用来累计当前键下所有元素的出现次数总和。 - 内层循环逐个取出
elements里的元素,用my_list.count(elem)获取该元素在my_list中的出现次数,累加到total_count。 - 完成内层循环后,把
key和total_count存入new_dict,继续处理下一个键。
内容的提问来源于stack exchange,提问作者dan
相关产品推荐
相关产品推荐

