详解Python中的内建函数,可迭代对象,迭代器


Posted in Python onApril 29, 2019

Python中的内建函数和可迭代对象,迭代器

求值标识

  1. id() #标识id 返回对象的唯一标识,CPython返回内存地址
  2. hash() #哈希, 返回对象的哈希值
  3. len(s) -->返回一个集合类型的元素个数
  4. range(start,stop[,step]) -->返回一个从start开始到stop结束,步长为step的可迭代对象。step默认为1

类型判断

  1. type() #返回对象的类型
  2. isinstance(obj,class_or_tuple) —>True|False #判断obj是否属于某种类型或者元组中列出的某个类型

例如 isinstance(True,int) #判断True是否是int类型

  1. issubclass(cls,class_or_tuple)—>True|False #判断类型cls是否是某种类型的子类或元组中列出的某个类的子类

例如issubclass(bool,(int,str)) #判断bool是否是(int,str)其中一个的子类。

类型转换

* float()   -->转换为浮点型
* int()     -->转换为整形
* bin()     -->转换为2进制
* hex()     -->转换为16进制
* oct()     -->转换为8进制
* bool()    -->返回bool值
* list()    --->返回列表
* tuple()   --->返回元组
* dict()    --->返回字典对象
* set()     --->返回集合对象
* complex() --->虚数转换
* bytes()   ---> 返回字节数组
* bytearry() --->返回可变的字节数组
* str()     --->返回字符类型

 字符转换

* chr(i)-->str #将整数转换成对应的字符
* ord(str)--->int #将字符转换成对应的整数
* repr()
* ascii()

 输入输出

  1. input([prompt])?>str 接受用户输入,返回一个字符串
  2. print(*object,sep=' ‘,end='\n',file=sys.stdout,flush=False) -->打印输出,默认使用空格分割,换行结尾,输出到控制台

数学运算相关

  1. abs(x)?> 返回x的绝对值 x为数值
  2. max()—> 返回最大值
  3. min()—> 返回最小值
  4. round(x)—>四舍五入取偶, 例如:round(-0.5)==0
  5. pow(x,y)—>求 xy x^yxy
  6.  divmod(x,y) —>返回x除以y的商和x除以y的余组成的二元组。等价于tuple(x//y,x%y)
  7. sum(iterable[,start])可迭代对象的所有数值元素求和

start为初始值,即从几开始累加

例如:

sum(range(5)) #求0~4所有数的和
sum(range(5),3) # 等价于3+sum(range(5))

sorted(iterable[,key][,reverse])—>list #排序,返回一个新的列表,默认升序

revers 是反转,默认revers = False

key 解决待排序中不同类型之间的排序。key是函数(这个函数指定了数据的排序方式),这个函数就可以吧元素强制转化为你指定的类型,但转换后的结果只是用来做比较大小,不会改变最后生成的列表中的元素本身。

例如:

ls = [1,2,5,6,7,4,3,5,3]
ls2 = sorted(ls) # 返回一个由ls内元素升序组成的列表
ls3 = sorted(ls,reverse=True) # 返回一个由ls内元素降序组成的列表
lss = [1,2,5,6,7,4,3,5,"3"]
lss2 = sorted(lss,key=str)
print(lss2)

迭代器惰性求值

reversed(seq) -->返回一个翻转元素的迭代器。惰性求值

例如:

ls = list("abcd")
ls1 = reversed(ls)
print(ls,ls1)
next(ls1)

详解Python中的内建函数,可迭代对象,迭代器

enumerate(seq,start=0)?>枚举生成器对象,返回索引数字和元素构成的二元组

seq 需要迭代的序列

start 表示索引开始的数字,默认是0

iter(iterable) #将一个可迭代对象封装成一个迭代器

next(iterator[,default]) #对一个迭代器取下一个元素。如果元素全部都取过了,再次next会抛出StopIteration异常

例如:

it = reversed([1,3,4,5,6])
next(it)

 zip(*iterable)—>迭代器 #拉链函数

根据多个个可迭代对象,返回一个由对应下标元素组成的元组。迭代器可返回值的个数取决于多个可迭代对象的最小长度。
把多个可迭代对象合并在一起,返回一个迭代器。将每次从不同对象中渠道的元素合并成一个元组

常用例子:

list(zip(range(10,range(10),range(10))))
dict(zip(range(10),range(10)))

例如:

m = zip(range(9),range(6))
for i in m:
  print(i)
print("------------")
m = zip(range(3),range(6))
for i in m:
  print(i)

 详解Python中的内建函数,可迭代对象,迭代器

all(iterable)—>True|False #判断所有元素是否都等效于True,如果都是就返回True,否则返回False。如果集合没有一个元素,返回True

any(iterable)—>True|False #判断所有元素中是否有等效为True的元素,如果有,返回True.如果集合没有一个元素,返回False

详解Python中的内建函数,可迭代对象,迭代器

 可迭代对象

  1. 能够通过迭代一次次返回不同元素的对象
  2. 可迭代,但是未必有序,未必可索引
  3. 可迭代对象有:list、tuple、string、bytes、bytearray、range、set、dict、生成器等
  4. 可使用成员操作符in、not in

迭代器

  1. 特殊的对象,一定是可迭代对象,具备可迭代对象的特征
  2. 生成器对象,就是迭代器对象
  3. 创建和使用:
  4. 可以通过iter方法把一个可迭代对象封装成迭代器
  5. 可以通过next()方法获取迭代器中的元素。

附加

详解Python中的内建函数,可迭代对象,迭代器

以上所述是小编给大家介绍的Python内建函数,可迭代对象,迭代器详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python3搜索及替换文件中文本的方法
May 22 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
详解Python3 pandas.merge用法
Sep 05 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
May 25 Python
Window10上Tensorflow的安装(CPU和GPU版本)
Dec 15 Python
python opencv实现图像配准与比较
Feb 09 Python
python抓取需要扫微信登陆页面
Apr 29 #Python
python基于itchat模块实现微信防撤回
Apr 29 #Python
手把手教你使用Python创建微信机器人
Apr 29 #Python
python实现微信防撤回神器
Apr 29 #Python
python实现文件助手中查看微信撤回消息
Apr 29 #Python
Python实现微信消息防撤回功能的实例代码
Apr 29 #Python
python控制nao机器人身体动作实例详解
Apr 29 #Python
You might like
在PHP中使用灵巧的体系结构
2006/10/09 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
nodejs动态创建二维码的方法
2017/08/12 NodeJs
浅谈Node.js 沙箱环境
2018/05/15 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
python简单实现获取当前时间
2016/08/27 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
Python3实现二叉树的最大深度
2019/09/30 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
2015入党自传格式范文
2015/06/26 职场文书
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫
MYSQL常用函数介绍
2022/05/05 MySQL
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS