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实现二分法算法实例
Feb 02 Python
python如何在列表、字典中筛选数据
Mar 19 Python
python3.5 email实现发送邮件功能
May 22 Python
解决seaborn在pycharm中绘图不出图的问题
May 24 Python
Django后台获取前端post上传的文件方法
May 28 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
May 31 Python
Python安装pycurl失败的解决方法
Oct 15 Python
Python零基础入门学习之输入与输出
Apr 03 Python
Python3 实现串口两进程同时读写
Jun 12 Python
Python实现蒙特卡洛算法小实验过程详解
Jul 12 Python
详解Python打包分发工具setuptools
Aug 05 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 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
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
PHP Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
小程序接口的promise化的实现方法
2019/12/11 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
在python shell中运行python文件的实现
2019/12/21 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
医学专业毕业生个人的求职信
2013/12/04 职场文书
20岁生日感言
2014/01/13 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
二婚主持词
2015/06/30 职场文书
游戏开发中如何使用CocosCreator进行音效处理
2021/04/14 Javascript
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android