我有一个字典列表:
list = [
{'i': 1, 'j': 1, 'diff': 39},
{'i': 1, 'j': 1, 'diff': 27},
{'i': 1, 'j': 1, 'diff': 18},
{'i': 1, 'j': 1, 'diff': 33},
...
]
因此,我需要为i
最大的条目提取j
和diff
的值。
我已经看到很多解决方案,它们可以简单地提取最大的diff
,但这不是这里所需要的。而且我可以想到实现此目的的方法,该方法涉及将每个值逐个循环并将其与其他值进行比较,但这似乎既无效又无效。
解决此问题的最佳方法是什么?
答案 0 :(得分:5)
使用带有max
参数的key
来指定您需要在列表中查找具有'diff'
键的最大值的字典:
lst = [
{'i': 1, 'j': 1, 'diff': 39},
{'i': 1, 'j': 1, 'diff': 27},
{'i': 1, 'j': 1, 'diff': 18},
{'i': 1, 'j': 1, 'diff': 33}
]
max_dict = max(lst, key=lambda x: x['diff'])
print(max_dict['i']) # 1
print(max_dict['j']) # 1