首先我们先看看正常max和min 的普通使用方法:
students={'zs':18,'ls':21,'wu':19} print(max(students.values())) #21
这样的比较确实能取出最大的年龄,但是完全不知道这是谁对应的。我们可以使用下面的方法来处理一下数据可以实现我们的要求。
students={'zs':18,'ls':21,'wu':19} stu=zip(students.values(),students.keys()) print(max(stu)) #(21, 'ls') #也就是说,我们在使用max或者min进行排序前,可以先对数据进行加工,这样可以达到更加理想的效果
我们在来看看max函数的原型。max(iterable, key, default) 。max函数的本质是去遍历传入的参数,然后返回它的一个元素,至于key是传入一个函数,它的作用就是决定要按什么东西去比较大小。
students=[ {'name':'zs','age':18}, {'name':'ls','age':21}, {'name':'ww','age':19} ] print(max(students,key=lambda dict:dict['age'])) #{'name': 'ls', 'age': 21}
首先我们看看上面代码的返回值,不管后面key怎么操作,返回值一定是students的一个元素,也就是一个字典。然后后面的key函数就是去处理遍历的元素,决定要比较哪一部分。