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

基于python3中的另一个值从dict列表中提取值,python,python-3.x,list,dictionary,Python,Python 3.x,List,Dictionary,我有一个字典列表: 列表=[ {'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,但这不是这里需要的。我可以想出一些方法来做到这一点,包括循环并逐个比较每个值,但这似乎既没有效率,也不符合逻辑 执行此操作的最佳方法是什么?使用max和key参数指

我有一个字典列表:

列表=[
{'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
,但这不是这里需要的。我可以想出一些方法来做到这一点,包括循环并逐个比较每个值,但这似乎既没有效率,也不符合逻辑


执行此操作的最佳方法是什么?

使用
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

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

diff
s是否可以具有相同的值,从而使多个
dict
具有最大的
diff
?@Chris是的,这是可能的,但不太可能的-在我的特定场景中,这个数字将是很少的,
diff
s是否可以具有相同的值,从而使多个
dict
具有最大的
diff
?@Chris是的,这是可能的,但不太可能——在我的特定场景中,这一数字将是很少的,而且是数百万