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中json格式数据输出的简单实现方法
Oct 31 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
python GUI实现小球满屏乱跑效果
May 09 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
python实现连连看辅助(图像识别)
Mar 25 Python
对Python _取log的几种方式小结
Jul 25 Python
在vscode中配置python环境过程解析
Sep 28 Python
Python多分支if语句的使用
Sep 03 Python
python,Java,JavaScript实现indexOf
Sep 09 Python
Python实现Excel自动分组合并单元格
Feb 22 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
JAVA/JSP学习系列之四
2006/10/09 PHP
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
python dict remove数组删除(del,pop)
2013/03/24 Python
python实现简单的TCP代理服务器
2014/10/08 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
python实现给数组按片赋值的方法
2015/07/28 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
对Python实现简单的API接口实例讲解
2018/12/10 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
golang/python实现归并排序实例代码
2020/08/30 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
GC是什么?为什么要有GC?
2013/12/08 面试题
会计学专业学生的求职信范文
2014/01/27 职场文书
车辆转让协议书
2014/09/24 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android