首先我們先看看正常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函數就是去處理遍歷的元素,決定要比較哪一部分。