从字典列表中提取值基于python3中的另一个值

sna*_*che 1 python dictionary list python-3.x

我有一个字典列表:

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},
    ...
]
Run Code Online (Sandbox Code Playgroud)

由此,我需要为提取最大的条目的i和的值。jdiff

我已经看到了很多解决方案,它们只会提取出最大的结果diff,但这不是这里所需要的。而且我可以想到实现此目的的方法,该方法涉及将每个值逐个循环并与其他值进行比较,但这似乎既无效又无效。

最好的方法是什么?

Aus*_*tin 5

maxkey参数一起使用以指定您需要在列表内查找具有'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
Run Code Online (Sandbox Code Playgroud)