python - 如何找到列表中键最多的字典?
问题描述
我有一个包含字典的列表,我想获取包含最多键的字典。
我该怎么做,最有效的方法是什么?
对于列表:
myList = [
{
'foo':12,
'bar':14,
'ali':34,
'met':45
},
{
'moo':52
},
{
'doo':6,
'tar':84,
'moo':52
}
]
我想得到result = {'foo':12, 'bar':14, 'ali':34, 'met':45}
解决方案
我想说最好的方法是使用带有您自己设置的参数的max
函数。参数是将用于比较元素的函数key
。key
在这里,如果您想比较字典的大小,您的功能将类似于
def comp_func(dic) :
return len(dic)
然后你可以像这样使用 max 函数
max_dict = max(myList, key=comp_func)
你也可以使用 lambda 函数(我认为这是最好的解决方案)
max_dict = max(myList, key=lambda dic: len(dic))
编辑
实际上,就像另一个答案所说的那样,您不必为了使用而重新创建函数len
,所以最好的方法是
max_dict = max(myList, key=len)
推荐阅读
- sqlite - 无法安装 better-sqlite3 以运行 Discord bot
- r - 在闪亮的仪表板HeaderPlus中隐藏下拉按钮
- c# - 外部注销后如何重定向到设置注销页面(openid Connect)Asp net core 3.1
- python - 在 maya/python 中传递单选按钮的名称
- vue.js - Laggy Vuetify v-checkbox
- amazon-web-services - Terraform 在创建 AWS RDS 实例时给出子网错误
- java - Hibernate:总是更新给定的记录,即使它不脏
- php - 修复 Leaflet 在生成的地图上不包括图片
- python - Matplotlib 画布上的布朗运动
- c++ - 如何使用可用的全部处理能力进行计算?