我有一个问题。在我的代码中,我有以下字典:
{1: {'amount': 40.0, 'quantity': 0}, 2: {'amount': 40.0, 'quantity': 0}, 3: {'amount': 40.0, 'quantity': 0}, 4: {'amount': 40.0, 'quantity': 0}, 5: {'amount': 41, 'quantity': 0}, 6: {'amount': 40.0, 'quantity': 0}, 7: {'amount': 40.0, 'quantity': 0}, 8: {'amount': 40.0, 'quantity': 0}, 9: {'amount': 40.0, 'quantity': 0}, 10: {'amount': 40.0, 'quantity': 0}}
在这个字典中,我需要获取amount
最大的内部字典的键。在我的例子中,应该是5
。我发现了很多类似的东西,但是没有关于嵌套字典的。
我想到了这样的东西:
max(int(i['amount']) for i in dict.values())
但是这返回最高的amount
。我需要用amount
返回那个字典的键。我怎样才能实现我想要的?
您可以找到字典中键的最大值,根据检索键对应的量的自定义键参数进行比较:
result = max(data.keys(), key=lambda x: data[x]['amount'])
print(result)
也许您可以检查该值是否等于最大值,然后保存键,例如:
[k for k, v in dict.items() if v == max(int(v['amount'])]
这将为您提供一个包含所有具有最大值的键的列表(如果多个键共享一个最大值)—因此,为了获得一个键,您可以索引它的第0个元素。