在嵌套字典中查找最小值并将其分配给键[python]

2024-03-29 14:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我被困在如何获得以下嵌套dict中哪个键具有最小pb值的问题上

a = {1230: {'name': 'Jack', 'age': 13, 'pb': 9.3, 'run': 10}, 1241: {'name': 'Sarah', 'age': 6, 'pb': 15.39, 'run': 21}, 1252: {'name': 'Eric', 'age': 6, 'pb': 16.41, 'run': 21}}

我应用了获取所有pb的逻辑,并使用元组将它们分配到一个新列表:

reg = []
for i in a.keys():
   b = ( a[reg], a[reg]['pb'] )

然后使用min函数确定哪个键具有最小值

print(min(b, key=b.get))

然后我得到一个错误,说“TypeError:unhabable type:'list'”

知道我为什么会出现这个错误吗?因为我已经将列表更改为元组,然后应用min函数

提前感谢大家的帮助


Tags: 函数runname列表age错误逻辑reg
1条回答
网友
1楼 · 发布于 2024-03-29 14:30:50

您可以执行以下操作:

a = {1230: {'name': 'Jack', 'age': 13, 'pb': 9.3, 'run': 10}, 1241: {'name': 'Sarah', 'age': 6, 'pb': 15.39, 'run': 21},
     1252: {'name': 'Eric', 'age': 6, 'pb': 16.41, 'run': 21}}

key = min(a, key=lambda x: a[x]['pb'])

print(key)

输出

1230

相关问题 更多 >