python 笔记7
1、内建函数:
(1)、sorted(iterable[,key][,reverse])排序
返回一个新的列表,默认升序
reverse是反转,当reverse是True时进行反转
(2)、chr(i)给一个一定范围的整数返回对应的字符
例: chr(97)
ord(c)返回字符对应的整数
例:ord('a')
(3)、翻转reversed(seql)
返回一个翻转元素的迭代器
那么我们可以对它进行next()操作
(4)、枚举 enumerate(seq,start=0)
迭代一个序列,返回索引数字和元素构成的二元组
start表示索引开始的数字,默认为0,枚举的元素并没有少,只是索引的开始位置做了偏移。枚举生成的也是一个迭代器
(5)、迭代器和取元素iter(iterable)、next(iterator)
iter将一个可迭代器对象封装成一个迭代器
next对一个迭代器取下一个元素。如果全部元素都取过了,再次next会抛异常
例:it=iter(range(5))
next(it)
it=reversed([1,4,5])
next(it)
(6)、拉链函数zip(*iterables)
像拉链一样,把多个可迭代对象合并在一起,返回一个迭代器;将每次从不同对象中取到的元素合并成一个元素,类似于“木桶原理”,最终合成的迭代器按最短的那个迭代
例、list(zip(range),range(10)))
dict(zip(range(10),range(10))) #用于生成字典很方便,前面的作为key,后面的作为value
{str(x):y for x,y in zip(range(10),range(10))} #用到了解构
{str(x):y for x,_,y in zip(range(10),range(10),range(10,20))}
2、可迭代对象
能够通过迭代一次次返回不同的元素对象,所谓相同不是指值是否相同,而是元素在容器中是否是同一个;可以迭代但未必有序,未必可以索引;可迭代对象有:list、tuple、 string、bytes、bytearray、range、set、dict、生成器等;可以使用成员操作符in、not in ,in本质上就是遍历对象
3、迭代器
特殊的对象,一定是可迭代器对象,具备可迭代对象的特征;通过iter方法把一个可迭代对象封装成迭代器;通过next()方法,迭代 迭代器对象;生成器对象就是迭代器对象。迭代器不一定是生成器,生成器是一个惰性(按需)求值的过程
4、对象长度len(s):返回一个集合类型的元素个数
isinstance(obj,class_or_tuple):判断对象obj是否属于某种类型或者元组列出的某个类型
例:isinstance(True,int) 测试True是否为int
issubclass(cls,class_or_tuple):判断类型cls是否是某种类型的子类或元组列出的某个类型的子类
例:issubclass(bool,int)