数字列表的处理
常用的max,min,sum函数
numlst=[1,2,3,4,5]
maxnum=max(numlst) #求列表最大值
minnum=min(numlst) #求列表中的最小值
sumnum=sum(numlst) #求列表的总和
print(maxnum,minnum,sumnum)
5 1 15
lambda表达式
max,min函数都有key关键字,通过更lambda表达式联用,可以实现更多元化的操作。
先简单介绍下lambda表达式。他的表现形式是:
lambda x:f(x)
可以将其看作一个匿名函数,x是输入的参数,f(x)是函数的表达式
numlst=[1,1,2,2,3,3,4,4,4,1]
a=max(numlst,key=lambda x:lst.count(x))
b=min(numlst,key=lambda x:-x)
print(a,b)
#out: 1 4
从这个例子看,这里max函数的作用对象式numlst列表,而关键字参数添加了lambda函数,这时lambda函数的输入参数就变成了numlst的元素,输出的函数就是冒号后面的表达式。max比较的对象是经过lambda表达式之后的对象,但是输出的结果却仍然是numlst中的元素。
lambda表达式也可以跟字典联用,实现根据key或value处理或排序
dic={'a':5,'b':4,'c':3}
n=max(dic)
m=max(dic,key=lambda x:dic[x])
dicsort=sorted(dic,key=lambda x: -dic[x])
print(n,m)
print(dicsort)
c a
['a', 'b', 'c']