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 相关文章推荐
Python中set与frozenset方法和区别详解
May 23 Python
Zabbix实现微信报警功能
Oct 09 Python
python3个性签名设计实现代码
Jun 19 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
python中正则表达式 re.findall 用法
Oct 23 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
python将字符串转换成json的方法小结
Jul 09 Python
python将音频进行变速的操作方法
Apr 08 Python
django ORM之values和annotate使用详解
May 19 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
Python word文本自动化操作实现方法解析
Nov 05 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
mysql总结之explain
2012/02/27 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
任意位置显示html菜单
2007/02/01 Javascript
ext for eclipse插件安装方法
2008/04/27 Javascript
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
Javascript函数的参数
2015/07/16 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
python实现大量图片重命名
2020/03/23 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
Django-imagekit的使用详解
2020/07/06 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
贫民窟的百万富翁观后感
2015/06/09 职场文书
画展观后感
2015/06/17 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技