博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python_bomb----高阶函数
阅读量:5772 次
发布时间:2019-06-18

本文共 2102 字,大约阅读时间需要 7 分钟。

高阶函数

  • 实参是一个函数名
  • 函数的返回值是一个函数
print(abs(-10))f = absprint(f(-10))#传递的参数包含函数名。def myfun(x,y,fun):    return f(x),f(y)print(myfun(-10,23,abs))1010(10, 23)

图片描述

python内置高阶函数

map()函数

map() 函数接收两个参数,一个是函数,一个是序列, map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 list 返回。

#随机生成一个长度为10,元素在2~7之间的列表#对列表里所有元素求阶乘import randomlee= [random.randint(2,7) for i in range(10)]print(lee)def mult(x):    rs=1    for i in range(1,x+1):        rs=i*rs    return rsprint(map(mult,lee))print(list(map(mult,lee)))[2, 6, 5, 3, 3, 3, 3, 5, 4, 6][2, 720, 120, 6, 6, 6, 6, 120, 24, 720]

图片描述

reduce()函数

把当前输出作为下一次运算的输入

  • python2中为内置函数
  • python3需要导入,from functools import reduce
#求10的阶乘from functools import reducedef multi(x, y):    return x * y# [1,2,3] ---> multi(multi(1,2),3)c = reduce(multi, range(1, 11))print(c)

图片描述

filter()函数

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

#求0~10之间的奇数def isodd(x):    return x % 2 != 0# [i for i in range(100,111) if i %2 !=0]d = filter(isodd, range(0, 11))print(d)print(list(d))
[1, 3, 5, 7, 9]

图片描述

匿名函数

  • 匿名函数定义规则

    lambda 形参:返回值
from functools import reduceprint(reduce(lambda x,y:x+y,[1,2,3,4,5]))15

列表里嵌套列表进行排序

d = {    '001':{        'name':'apple',        'count':124,        'price':1000    },    '002':{        'name':"banana",        'count':8,        'price':1024    }}#列表里嵌套元组print(d.items())    #按key值排序print(sorted(d.items(),key=lambda x:x[1]['count']))print(sorted(d.items(),key=lambda x:x[1]['price']))#itemgetter会忽略key值print(sorted(d.values(),key=itemgetter('count')))print(sorted(d.values(),key=itemgetter('price')))dict_items([('001', {'name': 'apple', 'count': 124, 'price': 1000}), ('002', {'name': 'banana', 'count': 8, 'price': 1024})])[('002', {'name': 'banana', 'count': 8, 'price': 1024}), ('001', {'name': 'apple', 'count': 124, 'price': 1000})][('001', {'name': 'apple', 'count': 124, 'price': 1000}), ('002', {'name': 'banana', 'count': 8, 'price': 1024})][{'name': 'banana', 'count': 8, 'price': 1024}, {'name': 'apple', 'count': 124, 'price': 1000}][{'name': 'apple', 'count': 124, 'price': 1000}, {'name': 'banana', 'count': 8, 'price': 1024}]

图片描述

转载地址:http://ggaux.baihongyu.com/

你可能感兴趣的文章
如何在linux系统下配置无线网卡?【转】
查看>>
王可言:「萬物聯網+人聯網+隨時在線」的新時代
查看>>
JAVA编程思想一
查看>>
java四种线程池简介,使用
查看>>
一般处理程序(.ashx)中session的使用方法
查看>>
EasyUI笔记(二)Layout布局
查看>>
ios View之间的切换 屏幕旋转
查看>>
js创建表格时最好要创建tbody元素
查看>>
ASN.1探索 - 3 编码规则与传输语法(1 - BER)(转)
查看>>
BZOJ2208:[JSOI2010]连通数(DFS)
查看>>
第三章:内存分配与回收策略
查看>>
Linux系统的优势
查看>>
jquery压缩图片插件
查看>>
Apple Swift学习资料汇总
查看>>
如何获取目录下所有文件名 c++
查看>>
SQL Server数据库无法启动(万金油解决办法)
查看>>
有关UIView、subview的几个基础知识点-IOS开发 (实例)
查看>>
【SICP练习】49 练习2.17
查看>>
OC 线程操作3 - NSOperation
查看>>
上载EXCEL到SAP系统的方法之一
查看>>