详解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 相关文章推荐
Python递归遍历列表及输出的实现方法
May 19 Python
Django实现图片文字同时提交的方法
May 26 Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 Python
解决Pycharm无法import自己安装的第三方module问题
May 18 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
python print出共轭复数的方法详解
Jun 25 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
Jul 01 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
Python使用永中文档转换服务
May 06 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调用Twitter的RSS的实现代码
2010/03/10 PHP
php 文件上传实例代码
2012/04/19 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python Requests 基础入门
2016/04/07 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
Django框架视图函数设计示例
2019/07/29 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
数学专业推荐信范文
2013/11/21 职场文书
调解员先进事迹材料
2014/02/07 职场文书
感恩教育活动总结
2014/05/05 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
优秀教师事迹材料
2014/12/15 职场文书
音乐课外活动总结
2015/05/09 职场文书
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL