Python-内建函数

内置参数详解 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,)

猜你喜欢

转载自www.cnblogs.com/JerryZao/p/9493358.html