..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

詳解Python中的內(nèi)建函數(shù),可迭代對象,迭代器

發(fā)布時間:2020-09-25 10:10:37 來源:腳本之家 閱讀:153 作者:帶著夢想飛翔 欄目:開發(fā)技術(shù)

Python中的內(nèi)建函數(shù)和可迭代對象,迭代器

求值標(biāo)識

  1. id() #標(biāo)識id 返回對象的唯一標(biāo)識,CPython返回內(nèi)存地址
  2. hash() #哈希, 返回對象的哈希值
  3. len(s) -->返回一個集合類型的元素個數(shù)
  4. range(start,stop[,step]) -->返回一個從start開始到stop結(jié)束,步長為step的可迭代對象。step默認(rèn)為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)其中一個的子類。

類型轉(zhuǎn)換

* float()   -->轉(zhuǎn)換為浮點型
* int()     -->轉(zhuǎn)換為整形
* bin()     -->轉(zhuǎn)換為2進制
* hex()     -->轉(zhuǎn)換為16進制
* oct()     -->轉(zhuǎn)換為8進制
* bool()    -->返回bool值
* list()    --->返回列表
* tuple()   --->返回元組
* dict()    --->返回字典對象
* set()     --->返回集合對象
* complex() --->虛數(shù)轉(zhuǎn)換
* bytes()   ---> 返回字節(jié)數(shù)組
* bytearry() --->返回可變的字節(jié)數(shù)組
* str()     --->返回字符類型

 字符轉(zhuǎn)換

* chr(i)-->str #將整數(shù)轉(zhuǎn)換成對應(yīng)的字符
* ord(str)--->int #將字符轉(zhuǎn)換成對應(yīng)的整數(shù)
* repr()
* ascii()

 輸入輸出

  1. input([prompt])–>str 接受用戶輸入,返回一個字符串
  2. print(*object,sep=' ‘,end='\n',file=sys.stdout,flush=False) -->打印輸出,默認(rèn)使用空格分割,換行結(jié)尾,輸出到控制臺

數(shù)學(xué)運算相關(guān)

  1. abs(x)–> 返回x的絕對值 x為數(shù)值
  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])可迭代對象的所有數(shù)值元素求和

start為初始值,即從幾開始累加

例如:

sum(range(5)) #求0~4所有數(shù)的和
sum(range(5),3) # 等價于3+sum(range(5))

sorted(iterable[,key][,reverse])—>list #排序,返回一個新的列表,默認(rèn)升序

revers 是反轉(zhuǎn),默認(rèn)revers = False

key 解決待排序中不同類型之間的排序。key是函數(shù)(這個函數(shù)指定了數(shù)據(jù)的排序方式),這個函數(shù)就可以吧元素強制轉(zhuǎn)化為你指定的類型,但轉(zhuǎn)換后的結(jié)果只是用來做比較大小,不會改變最后生成的列表中的元素本身。

例如:

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

迭代器惰性求值

reversed(seq) -->返回一個翻轉(zhuǎn)元素的迭代器。惰性求值

例如:

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

詳解Python中的內(nèi)建函數(shù),可迭代對象,迭代器

enumerate(seq,start=0)–>枚舉生成器對象,返回索引數(shù)字和元素構(gòu)成的二元組

seq 需要迭代的序列

start 表示索引開始的數(shù)字,默認(rèn)是0

iter(iterable) #將一個可迭代對象封裝成一個迭代器

next(iterator[,default]) #對一個迭代器取下一個元素。如果元素全部都取過了,再次next會拋出StopIteration異常

例如:

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

 zip(*iterable)—>迭代器 #拉鏈函數(shù)

根據(jù)多個個可迭代對象,返回一個由對應(yīng)下標(biāo)元素組成的元組。迭代器可返回值的個數(shù)取決于多個可迭代對象的最小長度。
把多個可迭代對象合并在一起,返回一個迭代器。將每次從不同對象中渠道的元素合并成一個元組

常用例子:

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中的內(nèi)建函數(shù),可迭代對象,迭代器

all(iterable)—>True|False #判斷所有元素是否都等效于True,如果都是就返回True,否則返回False。如果集合沒有一個元素,返回True

any(iterable)—>True|False #判斷所有元素中是否有等效為True的元素,如果有,返回True.如果集合沒有一個元素,返回False

詳解Python中的內(nèi)建函數(shù),可迭代對象,迭代器

 可迭代對象

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

迭代器

  1. 特殊的對象,一定是可迭代對象,具備可迭代對象的特征
  2. 生成器對象,就是迭代器對象
  3. 創(chuàng)建和使用:
  4. 可以通過iter方法把一個可迭代對象封裝成迭代器
  5. 可以通過next()方法獲取迭代器中的元素。

附加

詳解Python中的內(nèi)建函數(shù),可迭代對象,迭代器

以上所述是小編給大家介紹的Python內(nèi)建函數(shù),可迭代對象,迭代器詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI