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

时间:2019-04-22 03:18:59

标签: python python-3.x list dictionary

我有一个字典列表:

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最大的条目提取jdiff的值。

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

解决此问题的最佳方法是什么?

1 个答案:

答案 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