内置参数详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii
标识 id(): 返回对象的唯一标识,CPython返回内存地址。
哈希 hash():返回一个对象的哈希值
类型 type():返回对象的类型
类型转换:float() ,int() ,bin() hex() ,oct() ,bool() ,list() ,tuple() ,dict() ,set() ,complex(), bytes(),bytearray()
输入:input(),返回字符串
打印:print(*obj , sep=' ' , end=' ' )
对象长度:len(s) 返回一个集合类型的元素个数
isinstance(obj, class_or_tuple): 对象 是否是属于某种类型
isinstance(True, int) ------> True
issubclass( cls, class_or_tuple) : 判断类型 cls 是否是某种类型的自乐你或元组中列出的某个类型的子类
issubclass(bool , int)
绝对值 abs()
最值:min(iterable) max()
round(x) :四舍六入五取偶
range():
divmod(x,y) : 返回元组(x//y, x %y)
sum(irterable , base):a = sum(range(5),2) # 12 = 10 + 2
chr() :给定一个一定范围的整数返回对应的字符,chr(97) chr(20013) chr(22269)
ord():返回字符对应的整数
str(),
repr()
ascii()
sorted(iterable [, key] [ ,reverse]) 排序,返回一个新列表,默认升序,默认升序,reverse=True 降序
翻转 reversed(seq) 返回一个翻转元素的迭代器 ,不会吧原数据翻转,只是需要的时候,按照顺序拿
1 { reversed((2,3))} ----> 字典中一个元素(迭代器)
枚举 enumerate( seq, start=0) : 迭代一个序列,返回索引数字和元素构成的二元组,start 表示索引的开始数字,默认是0.
迭代器和取元素 iter( iterable ) , next( iterator [, default ])
iter 将一个 可迭代对象封装成一个迭代器,
next 对一个迭代器取下一个元素,如果全部元素都取过了,再次next 会抛StopIteration 异常,但是next()可以给定默认值,如果超界,输出默认值。
如果iter() 括号里 是一个可迭代对象,则成为可迭代器,如果是迭代器,则iter() 什么都不做。
1、可迭代对象 :
可迭代对象:
-
-
- 能够通过迭代一次次返回不同的元素的对象
- 所谓相同,不是指值是否相同,而是元素在容器中是否是同一个,例如列表总值可以重复的,[ 'a','a','a'],虽然这个列表有三个元素,值一样,但是三个'a'是不同的元素,因为索引不同。
- 可以迭代,但是未必有序,未必可索引,如:set
- 可迭代对象有:list,tuple,set,string bytes,bytearray,range,dict,生成器等
- 可以使用成员操作符 in , not in,in本质上就是在遍历对象。
- 能够通过迭代一次次返回不同的元素的对象
-
1 a = {a:b for a,b in zip(range(4),range(4, 10))} 2 print(a) # {0: 4, 1: 5, 2: 6, 3: 7} 3 4 b = zip(range(4), range(5)) 5 nex() # (0,0) 二元组 一直到(4,4) 6 7 c = zip(range(4),range(20),'dsadasd') 8 next() # 最后一个输出(3, 3, 'd')
迭代器:
-
-
- 特殊的对象,一定是可迭代对象,具备可迭代对象的特征
- 通过iter() 方法,把一个可迭代对象封装成迭代器
- 通过next() 方法,迭代 迭代器对象
- 生成器对象,就是迭代器对象
-
拉链函数 zip(*iteable):
就像拉链一样,把多个可迭代对象合并在一起,返回一个迭代器
将每次从不同对象中取到的元素合并成一个元组
1 a = {a:b for a,b in zip(range(4),range(4, 10))} 2 print(a) # {0: 4, 1: 5, 2: 6, 3: 7} 3 4 b = zip(range(4), range(5)) 5 nex() # (0,0) 二元组 一直到(4,4) 6 7 c = zip(range(4),range(20),'dsadasd') 8 next() # 最后一个输出(3, 3, 'd')
1 a = zip(range(4)) # 一个iterable的话,返回单元组 2 print(a) 3 print(next(a)) 4 5 # <zip object at 0x00000000027265C8> 6 # (0,)