欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python高阶函数

程序员文章站 2024-03-26 10:01:47
...

高阶函数

1.map()

用法
       list(map(fn, []))
说明
       map()传入的第一个参数是fn,即函数对象本身。
       由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。
实例

def f(x):
   return x * x
  	 
r = map(f, [1, 3, 5])
list(r)
#[1, 9, 25]
2.reduce()

用法
       from functools import reduce
       reduce(fn, [])
说明
       reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,
       再把结果继续和序列的下一个元素做累积计算.
实例

    from functools import reduce
    def fn(x, y):
         return x * 10 + y
 		
    reduce(fn, [1, 3, 5, 7, 9])
    #13579
3.filter()

用法
       list(fn, [])
说明
      和map()类似,filter()也接收一个函数和一个序列。
      和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
实例

def fn(n):
      return n % 2 == 1
  
  list(filter(fn, [1,2,3,4,5]))
  # [1,3,5]
4.sorted()

用法
       sorted([])
说明
       Python内置的sorted()函数就可以对list进行排序;
       此外,sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序;
       要进行反向排序可以传入第三个参数reverse=True。
实例

sorted([1,3,2])
    # [1,2,3]
    
sorted(['a','c','b'])
# ['a','b','c']
    
sorted(['a','c','B'], key=str.lower)     
# ['a','B','c']
    
# 反序排列
sorted([1,3,2], reverse=True)
# [3,2,1]

--------------------------END---------------------------------------

相关标签: 高阶函数