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

Python中如何对字典相同值分组、计数并按指定格式输出?

解决Python字典相同值按键分组、统计数量并格式化输出的问题

我来帮你搞定这个需求!咱们一步步来实现:

第一步:将相同值的键分组

首先需要把原字典的结构反转,让值作为新的键,对应的所有原键收集到一个列表里。这里用collections.defaultdict会非常省心,它能自动为每个新值初始化空列表:

from collections import defaultdict

result = {'light':4,'plane':4, 'vehicle':5}

# 初始化一个默认字典,用于分组
grouped_dict = defaultdict(list)
for key, value in result.items():
    grouped_dict[value].append(key)

执行完这段代码后,grouped_dict的内容是:{4: ['light', 'plane'], 5: ['vehicle']},完美实现了相同值的键分组。

第二步:统计每个值对应的键数量

想要知道每个值有多少个对应键,直接取分组后列表的长度就可以了:

# 统计并打印数量
for val, keys in grouped_dict.items():
    print(f"值{val}对应的键有{len(keys)}个")

这段代码会输出:

值4对应的键有2个
值5对应的键有1个

第三步:按期望格式打印结果

最后咱们按照你想要的格式输出,把每个值和对应的键列表用逗号分隔后放在同一行:

# 格式化输出
for val, keys in grouped_dict.items():
    print(f"{val} {', '.join(keys)}")

运行这段代码,输出就是你想要的:

4 light, plane
5 vehicle

完整代码整合

把所有步骤放在一起,完整代码如下:

from collections import defaultdict

result = {'light':4,'plane':4, 'vehicle':5}

# 分组
grouped_dict = defaultdict(list)
for key, value in result.items():
    grouped_dict[value].append(key)

# 统计数量
print("=== 统计信息 ===")
for val, keys in grouped_dict.items():
    print(f"值{val}对应的键有{len(keys)}个")

# 格式化输出
print("\n=== 格式化结果 ===")
for val, keys in grouped_dict.items():
    print(f"{val} {', '.join(keys)}")

运行后会得到:

=== 统计信息 ===
值4对应的键有2个
值5对应的键有1个

=== 格式化结果 ===
4 light, plane
5 vehicle

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:37:52