【九月打卡】第8天 Python的函数式编程(上)
2022/9/13 4:23:09
本文主要是介绍【九月打卡】第8天 Python的函数式编程(上),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:Python3 进阶教程(新版)
章节名称:第8章 Python的函数式编程
讲师名称:咚咚呛
课程内容
- 函数式编程
- 把函数作为参数
- map()函数
- reduce()函数
- filter()函数
- sorted()函数
学习收获
函数式编程
函数是逻辑功能的单位,函数式是一种编程范式。函数不等于函数式,计算不等于计算机。
函数式编程的特点:
- 把计算视为函数而不是指令
- 代码简洁,容易阅读,容易理解
- 纯函数式编程:不需要变量,测试简单
python的函数式编程的特点:
- 不是纯韩式是编程:允许有变量
- 支持高阶函数:函数可以作为变量
- 支持闭包:可以返回函数
- 支持匿名函数
把函数作为参数
import math def add(x,y,f): return f(x)+f(y) print(add(4,25,math.sqrt))
map 函数
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f依次作用在list的每个元素上,map()函数会返回一个迭代器,可以依次迭代得到原来list的元素被函数f处理后的结果。
names = ['alice', 'BOB', 'CanDY'] def firstToUpper(name): return name[0].upper() + name[1:].lower(); l = map(firstToUpper,names) print(l)
reduce 函数
和map函数一样,reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map() 类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。educe()还可以接收第3个可选参数,作为计算的初始值。
在python2中,reduce()函数和map()函数一样,可以直接使用,但是在python3中,reduce()函数被收录到functools包内,需要引入functools才可以使用。
def mul(x,y): return x * y print(reduce(mul,[1,2,3]) # ==> 6 print(reduce(mul,[1,2,3],4)) # ==> 24
filter 函数
filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,并返回一个迭代器,可以迭代出所有符合条件的元素。
import math def filter_num(num): return int(math.sqrt(num)) * int(math.sqrt(num)) == num l = range(1,101); print(filter(filter_num,l))
sorted 函数
sorted()函数可对list进行排序,当list的每一个元素又是一个容器时,则会以第一个元素来排序。
sorted接受key参数,用来指定排序的字段,key的值是一个函数,接受待排序列表的元素作为参数,并返回对应需要排序的字段。
如果需要倒序,指定reverse参数即可。
sorted(score, key=k, reverse=True)
举个例子:
# 实现忽略大小写排序的算法 def sort_by_key(item): return item[0].lower() l = ['bob', 'about', 'Zoo', 'Credit'] print(sorted(l,key=sort_by_key))
打卡截图
这篇关于【九月打卡】第8天 Python的函数式编程(上)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享