在字典列表中查找最大值

2024-09-25 12:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个数据结构:

   [
    {'id':0, 'items': 
      [
       {'id': 0,  name: "Tom1", age: 10}, 
       {'id': 0, name: "Mark1", age: 15}, 
       {'id': 0, name: "Pam1", age: 17}
      ]
    },
    {'id':1, 'items': 
      [
       {'id': 1,  name: "Tom12", age: 8}, 
       {'id': 1, name: "Mark12", age: 3}, 
       {'id': 1, name: "Pam12", age: 2}
      ]
    },

    {'id':2, 'items': 
      [
       {'id': 2,  name: "Tom13", age: 55}, 
       {'id': 2, name: "Mark13", age: 66}, 
       {'id': 2, name: "Pam13", age: 77}
      ]
    },
  ]

我想在每个字典中找到一个年龄值最大的条目并选择它。我怎样才能做到呢?在


Tags: nameid数据结构age字典itemsmark1tom1
2条回答
def find_largest_age(entry):
  return max(entry['items'], key=lambda d: d['age'])

map(find_largest_age, data_structure)

map将对顶层列表中的每个条目应用该函数。在

max将对'items'列表的每个成员调用key中提供的函数,并返回该函数为其提供最大值的函数。在

请注意,您可以将此设置为一行代码:

^{pr2}$

但那是相当不可读的。在

试试这个:

for dVals in yourData:
    print max(dVals['items'], key=lambda x:x['age'])

或一个衬垫:

^{pr2}$

相关问题 更多 >