Python 从字典列表中查找最大值

Python 从字典列表中查找最大值,python,csv,Python,Csv,我有一个字典列表,例如: [{1: 0.4, 3: 0.5}, {1: 0.2, 3: 0.9}, {1: 0.3, 3: 0.1}] 我想从每个列表项中找到第一个键(1)和第二个键(3)的最大值 ->键(1)的最大值为0.4 ->键(3)的最大值为0.9 我应该怎么做?您应该将所需的值提取到一个iterable中,然后查找最大值 data = [{1: 0.4, 3: 0.5}, {1: 0.2, 3: 0.9}, {1: 0.3, 3: 0.1}] key = 1 max([d[key]

我有一个字典列表,例如:

[{1: 0.4, 3: 0.5}, {1: 0.2, 3: 0.9}, {1: 0.3, 3: 0.1}]
我想从每个列表项中找到第一个键(1)和第二个键(3)的最大值
->键(1)的最大值为0.4
->键(3)的最大值为0.9

我应该怎么做?

您应该将所需的值提取到一个iterable中,然后查找最大值

data = [{1: 0.4, 3: 0.5}, {1: 0.2, 3: 0.9}, {1: 0.3, 3: 0.1}]

key = 1
max([d[key] for d in data])
请注意,在上面的示例中,我创建了一个列表,其中包含列表理解
[d[key]for d in data]
。通常,在处理大型输入时,创建列表会占用大量内存,应该避免。通过生成每个元素的生成器,可以获得类似的结果:

max(d[key] for d in data)
Python函数可以接受一个
参数,该参数指定一个单参数函数进行排序。返回是列表中的一个元素,在本例中是字典

dicts=[{1:0.4,3:0.5},{1:0.2,3:0.9},{1:0.3,3:0.1}]
键=[1,3]
对于键入键:
max_d=max(dicts,key=lambda d:d[key])
打印(f'键({key})的最大值为{max\u d[key]}')
maximum of key(1) is 0.4
maximum of key(3) is 0.9