Python笔记22-----高阶函数
Posted 咫片炫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python笔记22-----高阶函数相关的知识,希望对你有一定的参考价值。
1、sorted(排序对象,key=):排序对象可以是类别,也可以是字符串和字典,key为自定义排序,如:【key=abs,按绝对值排序】【key=lambda x:x[1],按排序对象的第二个值排序,若为二维数组,第二维排,若为字典则按值排】
①sorted(排序对象,key=abs):
数值:key=abs 【按照绝对值排序】
字符串:默认按小写到大写排序。key=str.lower【将所有的字符串变成小写再排序】eg: sorted ( [\'a\',\'dob\',\'Cold\',Zoo\'] , key=str.lower ) 结果:【\'a\' , \'Cold\' ,\'dob\',\'Zoo\'】
字典类型(二维数组):from operator import itemgetter
key=itemgetter(1)
或者
key=lambda x:x[1]
②sorted(排序对象,reverse=True) :逆序排序
2、map(函数,迭代器):对一个迭代器进行同样的函数操作。
如:
list(map(str,[1,2,3,4,5]))
结果:【‘1’,‘2’,‘3’,‘4’,‘5’】这样就可以不用用for来循环处理。
3、reduce(函数,迭代器):对一个迭代器中的每个元素进行迭代运算,如求和、求最大最小值……
4、map和reduce结合使用,将一个字符串\'13579\'转化成整数13579
from functools import reduce a=reduce(lambda x,y:x*10+y,map(int,\'13579\'))
5、filter(函数 f ,迭代器 l ):筛选函数作用,通过函数 f 之后返回的值若为真或有值则返回,若为假或空则不返回该值。
def is_odd(n): return n % 2 == 1 list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
6、map 和 zip 结合 可以取二维list的每一列的数。
grid = [[0,1,0,0], [1,1,1,0], [0,1,0,0], [1,1,0,0]] for col in map(list, zip(*grid) ): print(col) #结果:[0,1,0,1] #[1,1,1,1] #[0,1,0,0] #[0,0,0,0]
6、map比较两个列表中的数是否相等:
#operator.ne : ne(a,b) 表示 a != b map(operator.ne , list1,list2) #list1和list2中对应的值两两对比
以上是关于Python笔记22-----高阶函数的主要内容,如果未能解决你的问题,请参考以下文章