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-----高阶函数的主要内容,如果未能解决你的问题,请参考以下文章

python笔记18-高阶函数

python学习笔记之函数总结--高阶函数以及装饰器

python笔记--作用域高阶函数闭包

python学习笔记——高阶函数map()

Python学习笔记函数式编程-高阶函数

Python学习笔记