JLY*_*JLY 1 python dictionary nested
我在某个时候陷入了如何获取哪个键在下面的嵌套字典中获得最小 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}}
Run Code Online (Sandbox Code Playgroud)
我应用了获取所有 pb 的逻辑,并使用元组将它们分配给一个新列表:
reg = []
for i in a.keys():
b = ( a[reg], a[reg]['pb'] )
Run Code Online (Sandbox Code Playgroud)
然后使用 min 函数来确定哪个键具有最小值。
print(min(b, key=b.get))
Run Code Online (Sandbox Code Playgroud)
然后我收到一条错误消息“TypeError: unhashable type: 'list'”
知道为什么我会收到此错误,因为我已经将列表更改为元组,然后应用了 min 函数。
预先感谢大家的帮助。
您可以执行以下操作:
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)
Run Code Online (Sandbox Code Playgroud)
输出
1230
Run Code Online (Sandbox Code Playgroud)