Python高阶函数、常用内置函数用法实例分析


Posted in Python onDecember 26, 2019

本文实例讲述了Python高阶函数、常用内置函数用法。分享给大家供大家参考,具体如下:

高阶函数:

  • 允许将函数作为参数传入另一个函数;
  • 允许返回一个函数。
#返回值为函数的函数
sum=lambda x,y:x+y
sub=lambda x,y:x-y
calc_dict={"+":sum,"-":sub}
def calc(x):
  return calc_dict[x]

print(calc('-')(5,6))
print(calc('+')(5,6))

#参数有函数的函数
filter(lambda x:x>5,range(20))

常用内置函数:

  • abs(x):求绝对值
  • range([start], stop[, step]) :产生一个序列,默认从0开始
    • 注意:返回的不是一个list对象
>>> print(range(20))
range(0, 20)
>>> type(range(20))
<class 'range'>
>>> isinstance(range(20),Iterable)#########是一个可迭代对象
True
>>> from collections import Iterator
>>> isinstance(range(20),Iterator)#不是一个迭代器对象
False
  • oct(x)
    将一个数字转化为8进制
  • hex(x)
    将整数x转换为16进制字符串
  • bin(x)
    将整数x转换为二进制字符串
>>> oct(8)
'0o10'
>>> hex(8)
'0x8'
>>> bin(8)
'0b1000'
  • chr(i):返回整数i对应的Unicode字符
  • ord(x):将字符转换成对应的Unicode编址
>>> ord('中')
20013
>>> chr(20013)
'中'
  • enumerate(sequence [, start = 0]):返回一个可枚举的对象,该对象的next()方法将返回一个tuple
for i, value in enumerate(['A', 'B', 'C']):
  print(i, value)
  • iter(o[, sentinel])  :生成一个对象的迭代器,第二个参数表示分隔符
from collections import Iterator
#可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
print(isinstance([],Iterator))
print(isinstance(iter([]),Iterator))
  • sorted(iterable[, cmp[, key[, reverse]]])  对可迭代对象进行排序
>>> l=[8,7,6,5,4,3,2,1]
>>> sorted(l)
[1, 2, 3, 4, 5, 6, 7, 8]
  • cmp(x, y)  :如果x < y ,返回负数;x == y, 返回0;x > y,返回正数
  • all(iterable)
    1、可迭代对象中的元素都为真的时候为真
    2、特别的,可迭代对象若为空返回为True
>>> l=[]
>>> all(l)
True
>>> l=[1,2,3,4,5]
>>> all(l)
True
>>> l=[1,2,3,4,5,0]
>>> all(l)
False
  • any(iterable)
    1、可迭代对象中的元素有一个为真的时候为真
    2、特别的,可迭代对象若为空返回为False
>>> l=[]
>>> any(l)
False
>>> l=[0,0,0,0]
>>> any(l)
False
>>> l=[0,0,0,0,5]
>>> any(l)
True
>>>
  • eval(expression [, globals [, locals]])  :计算表达式expression的值
>>> str1="3+4"
>>> eval(str1)
7
  • exec(object[, globals[, locals]]):执行储存在字符串或文件中的 Python 语句
>>> str1="print('hello world')"
>>> exec(str1)
hello world
  • compile(source, filename, mode[, flags[, dont_inherit]])
    • 将source编译为代码或者AST对象。代码对象能够通过exec语句来执行或者eval()进行求值。
      1、参数source:字符串或者AST(Abstract Syntax Trees)对象。
      2、参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
      3、参数model:指定编译代码的种类。可以指定为 ‘exec','eval','single'。
      4、参数flag和dont_inherit:这两个参数暂不介绍
str1 = "print('hello world')"
c2 = compile(str1,'','exec')  
exec(c2)

str2="3+4"
c3=compile(str2,'','eval')
a=eval(c3)
print(a)
  • id(object)  :函数用于获取对象的内存地址
>>> id(str1)
1514678732384
>>> str2=str1
>>> id(str2)
1514678732384
  • isinstance(object, classinfo):判断object是否是class的实例
>>> isinstance(1,int)
True
>>> isinstance(1.0,int)
False
  • len(s)  :返回长度(ascll格式的返回字节数,unicode返回字符数/或元素个数)
>>> a=b'abc'
>>> len(a)
3
>>> b="我爱中国"
>>> len(b)
4
>>> c=[1,2,3,4]
>>> len(c)
4
  • repr(object)  :将对象转化为供解释器读取的形式,实质是返回一个对象的 string 格式
>>> c=[1,2,3,4]
>>> repr(c)
'[1, 2, 3, 4]'
>>> d={1:2,2:3,3:4}
>>> repr(d)
'{1: 2, 2: 3, 3: 4}'
  • type(object)  :返回该object的类型
>>> type(1)
<class 'int'>
>>> type("123")
<class 'str'>
>>> type((1,2,3))
<class 'tuple'>

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
精确查找PHP WEBSHELL木马的方法(1)
Apr 12 Python
python自定义解析简单xml格式文件的方法
May 11 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
Jun 15 Python
python基础之入门必看操作
Jul 26 Python
Python中分支语句与循环语句实例详解
Sep 13 Python
Python离线安装PIL 模块的方法
Jan 08 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
Apr 06 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
解决python3.x安装numpy成功但import出错的问题
Nov 17 Python
next在python中返回迭代器的实例方法
Dec 15 Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 #Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 #Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 #Python
python DataFrame转dict字典过程详解
Dec 26 #Python
Numpy之reshape()使用详解
Dec 26 #Python
PyCharm使用Docker镜像搭建Python开发环境
Dec 26 #Python
python路径的写法及目录的获取方式
Dec 26 #Python
You might like
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
Javascript 读书笔记索引贴
2010/01/11 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
详解webpack2+React 实例demo
2017/09/11 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
使用微信SDK自定义分享的方法
2019/07/03 Javascript
JS实现放大镜效果
2020/09/21 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
Python3实现并发检验代理池地址的方法
2016/09/18 Python
Python合并多个Excel数据的方法
2018/07/16 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
女大学生毕业找工作的自我评价
2013/10/03 职场文书
关于责任的演讲稿
2014/05/20 职场文书
故意伤害辩护词
2015/05/21 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书