min传入key后可以更加全面以及符合自己需求的得到结果。举几个例子说明:
例如1:将下面的列表按年龄数字排序返回元组
list = [('lg',24),('wx',23),('aa',34)]
首先min传入key的格式为:
min(list,key=func)
第一个参数是需要比较的数据,key后面只能传入函数名
书写func函数里面的内容,func函数内容是自定义的:
def func(x): #x是min传入的参数,这里是单个元组如('lg',24)
return x[1] #返回给min结果,让min以这些数值排序,并返回该数值的元组,如24
总的就是:
list = [('lg',24),('wx',23),('aa',34)]
def func(x):
return x[1]
result = min(list,key=func)
print(result)
#result结果为('wx', 23)
上面的代码可以用匿名函数简写为:
list = [('lg',24),('wx',23),('aa',34)]
result = min(list,key=lambda x : x[1])
print(result)
备注说明:如果想知道传入的x具体是什么,可以直接min(list),就是不带key,得到的结果就是传入的值。
例如2:得到以年龄为最小结果的列表 以及 问题得到得到以年龄为最小结果对应的语言
dic1 = {'first':['lg',24,'python'],'second':['wx',23,'xxx'],'third':['aaa',44,'c']}
得到以年龄为最小结果的列表 ,定义一个func,这里传入的x是dic1的键,就是分别是
def func(x):
return dic1[x][1] #这里得到second
总的为:
dic1 = {'first':['lg',24,'python'],'second':['wx',23,'xxx'],'third':['aaa',44,'c']}
def func(x):
return dic1[x][1]
result = dic1[min(dic1,key=func)] # dic1['second']
print(result) #['wx', 23, 'xxx']
用匿名函数简写为:
dic1 = {'first':['lg',24,'python'],'second':['wx',23,'xxx'],'third':['aaa',44,'c']}
result = dic1[min(dic1,key= lambda x : dic1[x][1])]
print(result)
得到以年龄为最小结果对应的语言:
dic1 = {'first':['lg',24,'python'],'second':['wx',23,'xxx'],'third':['aaa',44,'c']}
result = dic1[min(dic1,key= lambda x : dic1[x][1])][2]
print(result) # xxx