Python如何优雅获取字典中存储记录数量最多的键
解决方案
直接用Python内置的max()函数即可,通过指定key参数定义比较规则,一行就能实现需求:
# 直接获取值长度最大的键 max_key = max(dic, key=lambda k: len(dic[k])) print(max_key)
运行后会直接输出ls2,和你原有代码的运行结果一致。
优势说明
- 不需要硬编码每个键名,不管字典里有多少个键都可以直接适配,扩展性极强
- 时间复杂度为O(n)(n为字典的键数量),和手动比较的效率一致,但是代码量大幅精简,可读性更高
特殊场景适配
如果存在多个键对应的值长度相同、同为最大值的情况,上述写法只会返回第一个匹配到的键。如果需要获取所有符合条件的键,可以用如下写法:
# 先计算最大长度 max_length = max(len(val) for val in dic.values()) # 筛选所有对应值长度等于最大长度的键 max_key_list = [key for key, val in dic.items() if len(val) == max_length] print(max_key_list)
内容的提问来源于stack exchange,提问作者sysOut
相关产品推荐
相关产品推荐

