python高阶函数

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
 将如下所示的 List 中 dict 去重
  data = [{"id":1, "name":"kk"},{"id":2, "name":"leontom"},{"id":1, "name":"kk"}]

解决:  
from functools import reduce
list_data = reduce(lambda x, y: x if y in x else x + [y], [[], ] + data)
print(list_data)
>> [{"id":1, "name":"kk"},{"id":2, "name":"leontom"}]
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]
# 对列表中的字典按照指定的key 排序
import operator
name_list = [{"name":"aaa", "age":1}, {"name":"cccc", "age":2}, {"name":"bbbb", "age":2}]
ret = sorted(name_list, key=operator.itemgetter('name', 'age'))

print(ret)
>> [{'name': 'aaa', 'age': 1}, {'name': 'bbbb', 'age': 2}, {'name': 'cccc', 'age': 2}]

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值