python(内置高阶函数)
1.高阶函数介绍:
- 一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),如果满足其一,则为高阶函数。
- 常见的高阶函数:map()、sorted()、filter()等也是python内置的函数,也可以自定义高阶函数,其实装饰器也算一种高阶函数。
2.内置高阶函数:
(1)map(function,iterable) 函数
- function:接收一个函数
- iterable:接受一个可迭代对象(字符串,元组,列表,字典)
- 作用:可将迭代对象 __iter1 依次代入这个函数,然后将结果组成一个列表返回
"""
#将列表 a 中的元素全部转换成字符串
a = [1,2,3,4] b = map(str,a)
print(list(b))
""" """
#将下面stu列表中的姓氏进行首字母大写操作
stu = ["ZHAo","qIan","SUN","Li"]
#自定义首字母大写方法
def NameStyle(name):
return name[0].upper() + name[1:].lower()
#使用map()函数,传入参数为,自定义的函数NameStyle名称,和可迭代对象stu
stu2 = map(NameStyle,stu)
print(list(stu2))
"""
(2)filter(function,iterable) 函数
- function:接收一个函数
- iterable:接受一个可迭代对象
- 作用:将可迭代对象依次传入该函数,通过返回值是 True 或 False 决定去留(过滤或筛选)
"""
#找出列表 strs 中的所有字符串
strs = ["a","b","c",1,2]
def get_str(x):
if isinstance(x,str): #判断传入的元素 x 是否是 str 型
return True
new_strs = filter(get_str,strs)
print(list(new_strs))
""" """
#找出列表中http链接
http = ["http://www.baidu.com","apple","http://weibo.cn","中国人"]
def ht(param):
if param.startswith("http"):
return True all_http = filter(ht,http)
print(list(all_http))
"""
(3)sorted(iterable,key,reverse) 函数
- iterable:可迭代对象
- key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序
- reverse:排序规则,reverse = True 降序 , reverse = False 升序(默认)
- 返回值:返回重新排序的列表
"""
#根据成绩排序
grade = [("Tom",75),("Jerry",92),("Apple",66),("Ben",88)] def get_grade(x):
return x[1] print(sorted(grade,key=get_grade))
""" """
# 根据字符串长度排序
name = ["Tom","Jerry","Apple","Ben"] def len_name(x):
return len(x) print(sorted(name,key=len_name))
"""
3.嵌套函数
- 函数内部再进行定义函数成为嵌套函数
def foo():
msg = "China"
def fo():
return msg
return fo()
print(foo())
4.匿名函数
- 特点:
- 只能有一个表达式
- 匿名函数只有一个参数
- 匿名函数也是一个函数对象,可以赋值给一个变量
- 经常配合高阶函数使用
#计算出列表中所有值的平方
li = [1,2,3,4,5]
"""
#高阶函数用法
def foo(x):
return x * x
print(list(map(foo,li)))
"""
#匿名函数用法
"""
print(list(map(lambda x: x * x,li))) #第一个 x 为参数,x * x 为计算逻辑
"""
#匿名函数赋值给变量 f f = lambda x: x * x
print(f(2))
#求出 1-20 的所有奇数
J = list(filter(lambda x: x % 2 != 0,range(1,20)))
print(J)
python(内置高阶函数)的更多相关文章
- Python内置高阶函数map()
map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如,对于lis ...
- 匿名函数python内置高阶函数以及递归
匿名函数 python定义一个函数通常使用def关键词,后面跟函数名,然后是注释.代码块等. def func(): '''注释''' print('from func') 这样就在全局命名空间定义了 ...
- Python中匿名函数与内置高阶函数详解
大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...
- python面试_总结01_概念和内置高阶函数
- 简答题 1.请谈谈Python中is 和 == 的区别(代码演示) is用于比较两个变量是否引用了同一个内存地址,is表示的是对象标识符(object identity),作用是用来检查对象的标识 ...
- reduce内置高阶函数求和
>>> def f(x, y): ... return x+y ... >>> reduce(f, a, ) >>> reduce(lambda ...
- Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted
1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...
- Python中的高阶函数与匿名函数
Python中的高阶函数与匿名函数 高阶函数 高阶函数就是把函数当做参数传递的一种函数.其与C#中的委托有点相似,个人认为. def add(x,y,f): return f( x)+ f( y) p ...
- python字符串反转 高阶函数 @property与sorted(八)
(1)字符串反转 1倒序输出 s = 'abcde' print(s[::-1]) #输出: 'edcba' 2 列表reverse()操作 s = 'abcde' lt = list(s) lt.r ...
- Python入门篇-高阶函数
Python入门篇-高阶函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.高级函数 1>.First Class Object 函数在Python中是一等公民 函数也 ...
随机推荐
- Python 1基础语法二(标识符、关键字、变量和字符串)
一.标识符 标识符就是程序员自己命名的变量名.名字需要有见名知义的效果,不要随意起名 :比如 a=1 a是个变量,a这个变量名属于标识符 1 company = '小米 2 employeeNum = ...
- template_共享模板
方法: 定义一个基本框架html文件 举例:定义{标题.内容.页尾}区块 定义相应的html文件实现区块的具体样式或内容 定义具体静态网页html文件时调用这些区块html文件, 实现公共元 ...
- 【python实现卷积神经网络】卷积层Conv2D反向传播过程
代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...
- Nginx如何来配置隐藏入口文件index.php(代码)
Nginx配置文件里放入这段代码 server { location / { index index.php index.html index.htm l.php; autoindex on; if ...
- log4j入门(转) --- 很详细 也很简单容易懂
log4j入门(转) Log4j实在是很熟悉,几乎所有的Java项目都用它啊.但是我确一直没有搞明白.终于有一天我受不了了,定下心去看了一把文档,才两个小时,我终于搞明白了.一般情况下Log4j总是和 ...
- Centos7_搭建暗网网站
Tor运行原理 请求方需要使用:洋葱浏览器(Tor Browser)来对暗网网站进行访问 响应放需要使用:Tor协议的的Hidden_service 搭建步骤 更新YUM源: rpm -Uvh htt ...
- 数组的连接和截取(contact和slice和splice)
<script> var arr1 = ["a","b","c"]; var arr2 = [1,2,3]; //concat把 ...
- 浅谈Vector
浅谈Vector 在之前的文章中,我们已经说过线程不安全的ArrayList和LinkedList,今天我们来讲讲一个线程安全的列表容器,他就是Vector,他的底层和ArrayList一样使用数组来 ...
- python批量爬取动漫免费看!!
实现效果 运行环境 IDE VS2019 Python3.7 Chrome.ChromeDriver Chrome和ChromeDriver的版本需要相互对应 先上代码,代码非常简短,包含空行也才50 ...
- pickle\json,configparser,hashlib模块
python常用模块 目录 python常用模块 json模块\pickle模块 configparser模块 hashlib模块 subprocess模块 json模块\pickle模块 首先说一下 ...