内置高阶函数
map函数
map( ) 函数接收两个参数,一个是函数,一个是序列, map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 list 返回
‘’’
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’ def fun(x): return x * x print map(fun, range(5)) 结果: [0, 1, 4, 9, 16] print map(str, [1, 2, 3]) 结果: [‘1’, ‘2’, ‘3’]
reduce函数
reduce把一个函数作用在一个序列[x1, x2, x3…]上,这个函数必须接收两个参数,reduce 把结果继续和序列的下一个元素做累积计算
def add(x, y): return x + y print reduce(add, range(5))
结果:
10
其实其运行过程为:add(add(add(add(0+1)+2)+3)+4)=10
filter函数
filter( ) 也接收一个函数和一个序列。和 map( ) 不同的是,filter( ) 把传入的函数依次作用于每个元素,然后根据返回值是 True还是 False 决定保留还是丢弃该元素
在一个 list 中,删掉偶数,只保留奇数:
‘’’
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’ def fun(n): return n % 2 == 1 print filter(fun,range(5))
结果:
[1, 3]
sorted函数
- 排序也是在程序中经常用到的算法。 无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。通常规定如下:
x < y, return -1 x == y, return 0 x > y, return 1 print sorted([3, 1, 2]) print sorted([3, 1, 2], reverse=True)
结果:
[1, 2, 3] [3, 2, 1]
排序数字字符
li = [‘2’, ‘1’, ‘4’, ‘3’] print sorted(li, key=int)
结果:
[‘1’, ‘2’, ‘3’, ‘4’]
匿名函数
- 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。
- 关键字 lambda 表示匿名函数,冒号前面的 x 表示函数参数
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)