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 os模块学习笔记
Jun 21 Python
python模块之paramiko实例代码
Jan 31 Python
Python发送http请求解析返回json的实例
Mar 26 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
Python将多个list合并为1个list的方法
Jun 27 Python
django如何连接已存在数据的数据库
Aug 14 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
Nov 07 Python
Python中extend和append的区别讲解
Jan 24 Python
python kafka 多线程消费者&amp;手动提交实例
Dec 21 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 Python
使用Django框架创建项目
Jun 10 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网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
PHP学习记录之数组函数
2018/06/01 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
python带参数打包exe及调用方式
2019/12/21 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
CSS3的颜色渐变效果的示例代码
2017/09/29 HTML / CSS
迎新晚会邀请函
2014/02/01 职场文书
安全演讲稿大全
2014/05/09 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
中秋节晚会开场白
2015/05/29 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers