You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python动态字典重复值统计及作业需求实现代码求助

问题根因
  • Python 原生字典不允许存在重复键,你在定义字典字面量时写的重复键会被后写入的值直接覆盖。从你给出的运行输出也能看出,两个初始化字典里最终都只保留了每个键的最后一个值,所有你提前写的重复键内容已经被丢弃,自然无法统计到重复数据。
  • 原有统计逻辑是筛选出对应了多个不同键的值,但你最终保留的字典里所有值都只对应一个键,所以返回空集。
修正实现方案

1. 调整数据存储结构

如果要保留重复键的所有键值对,不要直接用原生字典存储,改用(键, 值)元组组成的列表,就能完整保存所有输入数据,动态添加内容时直接调用append方法即可,天然支持重复键、重复值。

2. 完整可运行代码

from collections import defaultdict

# 存储所有键值对(支持动态新增、支持重复键/重复值)
kv_list = [
    ("Name", "John"),
    ("Age", 43),
    ("Name", "Mark"),
    ("Age", 43),
    ("Occupation", "Plumber"),
    ("Occupation", "Teacher"),
    ("Age", 35),
    ("Age", 43)
]

# 统计每个值对应的所有键
value_to_keys = defaultdict(list)
for key, value in kv_list:
    value_to_keys[value].append(key)

# 输出重复取值的统计结果
print("重复取值统计结果:")
for value, keys in value_to_keys.items():
    count = len(keys)
    if count > 1:
        print(f"取值 *{value}* 共出现 {count} 次,关联的所有键为:{keys}")

3. 运行输出示例

重复取值统计结果:
取值 *43* 共出现 3 次,关联的所有键为:['Age', 'Age', 'Age']

内容的提问来源于stack exchange,提问作者tonyalmeida24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:24:02