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

如何获取字典中元素数量最多和最少的键及对应计数?

解决字典中对应列表元素数量的最值问题

你的问题出在max(hosp, key=hosp.get)的逻辑上——这个写法是在比较列表本身的内容(按元素的字典序),而不是列表的元素数量。要实现需求,只需把比较逻辑改成基于列表的长度即可,无需导入任何模块。

基础解法(单个最值键)

直接使用len()计算列表长度作为比较依据:

# 示例字典,实际可替换为你的真实数据
hosp = {
    'rank': [1, 2, 3, 4, 5],
    'trolley': [5, 10, 15, 25, 30],
    'ward': [0, 12, 10, 8, 3],
    'patients': [200, 100, 1000, 500, 375]
}

# 找元素数量最多的键及对应数量
max_key = max(hosp, key=lambda k: len(hosp[k]))
max_count = len(hosp[max_key])

# 找元素数量最少的键及对应数量
min_key = min(hosp, key=lambda k: len(hosp[k]))
min_count = len(hosp[min_key])

print(f"元素数量最多的键是: {max_key},共 {max_count} 个元素")
print(f"元素数量最少的键是: {min_key},共 {min_count} 个元素")

进阶解法(处理多个键同最值的情况)

如果存在多个键对应的列表长度相同且同为最大/最小值,用以下代码可以一次性列出所有符合条件的键:

key_lengths = [(key, len(value)) for key, value in hosp.items()]

# 获取最大长度及对应键
max_length = max(length for _, length in key_lengths)
max_keys = [key for key, length in key_lengths if length == max_length]

# 获取最小长度及对应键
min_length = min(length for _, length in key_lengths)
min_keys = [key for key, length in key_lengths if length == min_length]

print(f"元素数量最多的键: {', '.join(max_keys)},共 {max_length} 个元素")
print(f"元素数量最少的键: {', '.join(min_keys)},共 {min_length} 个元素")

实际数据测试

假设你的真实数据中patients对应220个元素,trolley对应64个元素,其他键的列表长度介于两者之间,运行代码后会输出:

元素数量最多的键是: patients,共 220 个元素
元素数量最少的键是: trolley,共 64 个元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:30:25