【问题标题】:Finding the minimum value in a nested dictionary & assigned it to the key [python]在嵌套字典中查找最小值并将其分配给键 [python]
【发布时间】:2020-03-31 07:44:37
【问题描述】:

我对如何在下面的嵌套字典中获得最小 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: unhashable type: 'list'”

关于我为什么会收到此错误的任何想法,因为我已经将列表更改为元组,然后应用了 min 函数。

提前感谢大家的帮助。

【问题讨论】:

  • 第二个 sn-p 意义不大。你认为a[reg] 是什么意思?

标签: python dictionary nested


【解决方案1】:

您可以执行以下操作:

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

【讨论】:

    猜你喜欢
    • 2015-07-18
    • 2021-06-01
    • 2014-05-18
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    相关资源
    最近更新 更多