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

Python字典中查找值的唯一元素数量最多的键及对应长度

实现方法

利用max()函数的key参数遍历字典键值对即可实现需求,仅需一次遍历,适配大体积字典场景。

基础实现代码

dict_one = {'a': ['Hanks', 'Bob', 'Bill'], 'b': ['nation', 'nile', 'Jonas']}

# 遍历键值对,按值的去重长度排序取最大值
max_key, max_val = max(dict_one.items(), key=lambda item: len(set(item[1])))
max_unique_len = len(set(max_val))

# 按指定格式输出
print(f"key: {max_key}")
print(f"length: {max_unique_len}")

运行输出结果:

key: a
length: 3

性能优化版本

如果字典值的列表体量较大,重复计算set会浪费性能,可采用生成器提前缓存每个键对应的去重长度,避免重复计算:

# 生成器仅计算一次每个值的去重长度,无额外内存占用
key_len_pair = ((k, len(set(v))) for k, v in dict_one.items())
max_key, max_unique_len = max(key_len_pair, key=lambda x: x[1])

print(f"key: {max_key}")
print(f"length: {max_unique_len}")

多最大值匹配场景

如果存在多个键的去重长度相同且均为最大值,上述方法仅会返回第一个匹配的键。需要返回所有符合条件的键可采用如下方案:

# 先计算全局最大去重长度
max_unique_len = max(len(set(v)) for v in dict_one.values())
# 筛选所有匹配的键
all_max_keys = [k for k, v in dict_one.items() if len(set(v)) == max_unique_len]

print(f"所有匹配键: {all_max_keys}")
print(f"最大长度: {max_unique_len}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:24:04