Python教程:Python中的元組推導(dǎo)式詳解
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《Python中的元組推導(dǎo)式詳解》。本知識點(diǎn)主要內(nèi)容有:使用 tuple() 函數(shù),可以直接將生成器對象轉(zhuǎn)換成元組、直接使用 for 循環(huán)遍歷生成器對象,可以獲得各個(gè)元素、使用 __next__()方法遍歷生成器對象,也可以獲得各個(gè)元素。
永久美國免備案虛擬主機(jī)1元1天,15元1月,100元1年,1000元永久
站長在線旗下答案網(wǎng)站,全站所有題目,免費(fèi)查看答案和答案解析
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)python知識,本文學(xué)習(xí)的是《Python中的元組推導(dǎo)式詳解》。本知識點(diǎn)主要內(nèi)容有:使用 tuple() 函數(shù),可以直接將生成器對象轉(zhuǎn)換成元組、直接使用 for
循環(huán)遍歷生成器對象,可以獲得各個(gè)元素、使用 __next__()
方法遍歷生成器對象,也可以獲得各個(gè)元素。
我們在《python中的列表推導(dǎo)式詳解》中學(xué)過,使用列表推導(dǎo)式可以快速生成一個(gè)新的列表,或者根據(jù)某個(gè)列表生成滿足指定需求的列表。
生成指定范圍的數(shù)值列表,語法格式如下:
list = [Expression for var in range]
那么我們使用列表推導(dǎo)式的方法用于元組推導(dǎo)式行不行呢?
我們根據(jù)列表推導(dǎo)式的方法,把“[]”改成“()”試一試:
tuple = (Expression for var in range)
我們也和列表推導(dǎo)式一樣的內(nèi)容:
a1 = (i for i in range(10)) #生成一個(gè)10以內(nèi)的元組
a2 = (i for i in range(10) if i % 2 == 0) #生成一個(gè)10以內(nèi)的偶數(shù)元組
print(a1)
print(a2)
運(yùn)行結(jié)果如下:
<generator object <genexpr> at 0x000001DC03E3C900>
<generator object <genexpr> at 0x000001DC03DBBD10>
>>>
為什么是這樣的,而不是下面這樣我們想要的呢?
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
(0, 2, 4, 6, 8)
>>>
從上面的執(zhí)行結(jié)果可以看出,使用元組推導(dǎo)式生成的結(jié)果并不是一個(gè)元組,而是一個(gè)生成器對象,這一點(diǎn)和列表推導(dǎo)式是不同的。
那么怎樣才能使用元組推導(dǎo)式獲得新的元組呢?
下面講解3個(gè)方法使用元組推導(dǎo)式獲得新的元組:
1、在Python中使用 tuple()
函數(shù),可以直接將生成器對象轉(zhuǎn)換成元組。
要使用該生成器對象,可以轉(zhuǎn)換成元組或者列表。下面我們就上面的內(nèi)容進(jìn)行轉(zhuǎn)換成元組和列表,代碼如下:
a1 = (i for i in range(10)) #生成一個(gè)10以內(nèi)的元組
a2 = (i for i in range(10) if i % 2 == 0) #生成一個(gè)10以內(nèi)的偶數(shù)元組
print("轉(zhuǎn)換后的元組為:",tuple(a1)) #轉(zhuǎn)換為元組
print("轉(zhuǎn)換后的列表為:",list(a2)) #轉(zhuǎn)換為列表
運(yùn)行結(jié)果如下:
轉(zhuǎn)換后的元組為: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
轉(zhuǎn)換后的列表為: [0, 2, 4, 6, 8]
>>>
2、在Python中直接使用 for
循環(huán)遍歷生成器對象,可以獲得各個(gè)元素。例如:
a = (i for i in range(10)) # 生成一個(gè)10以內(nèi)的元組
for i in a: # for 循環(huán)遍歷生成器對象
print(i,end=',') # 輸出元組元素在同一行顯示,并且用“,”隔開
print(tuple(a)) # 輸出新元組
運(yùn)行結(jié)果為:
0,1,2,3,4,5,6,7,8,9,()
>>>
3、 在Python中使用 __next__()
方法遍歷生成器對象,也可以獲得各個(gè)元素。例如:
a = (i for i in range(3)) # 生成一個(gè)3以內(nèi)的元組
print(a.__next__()) # 輸出第一個(gè)元素
print(a.__next__()) # 輸出第二個(gè)元素
print(a.__next__()) # 輸出第三個(gè)元素
a = tuple(a) # 轉(zhuǎn)換為元組
print("轉(zhuǎn)換后的元組:",a) # 輸出新元組
運(yùn)行結(jié)果為:
0
1
2
轉(zhuǎn)換后的元組: ()
>>>
通過上面for循環(huán)遍歷生成器對象和__next__()方法遍歷生成器對象以后,如果還需要使用該生成器對象的話,都必須創(chuàng)建新的生成器對象才行,因?yàn)楸闅v以后,原來的生成器對象已經(jīng)不存在了,輸出的新元組為空。
到此為止,本文《Python中的元組推導(dǎo)式詳解》講解的使用 tuple() 函數(shù),可以直接將生成器對象轉(zhuǎn)換成元組、直接使用 for
循環(huán)遍歷生成器對象,可以獲得各個(gè)元素、使用 __next__()
方法遍歷生成器對象,也可以獲得各個(gè)元素。講解完畢,不懂的可以給我留言哦!
本文地址:http://003188.cn/pythonyuanzutuidaoshi.html
阿里云虛擬主機(jī)1G空間,120元一年
香港、美國虛擬主機(jī)100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡