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