元組推導式可以利用 range 區間、元組、列表、字典和集合等資料型別,快速生成乙個滿足指定需求的元組。
元組推導式的語法格式如下:
(表示式 for 迭代變數 in 可迭代物件 [if 條件表示式] )
其中,用 括起來的部分,可以使用,也可以省略。
通過和列表推導式做對比,你會發現,除了元組推導式是用 () 圓括號將各部分括起來,而列表推導式用的是 ,其它完全相同。不僅如此,元組推導式和列表推導式的用法也完全相同。
例如,我們可以使用下面的**生成乙個包含數字 1~9 的元組:
a = (x for x in range(1,10))
print(a)
執行結果為:
at 0x0000020bad136620>
從上面的執行結果可以看出,使用元組推導式生成的結果並不是乙個元組,而是乙個生成器物件(後續會介紹),這一點和列表推導式是不同的。
如果我們想要使用元組推導式獲得新元組或新元組中的元素,有以下三種方式:
使用 tuple() 函式,可以直接將生成器物件轉換成元組,例如:
a = (x for x in range(1,10))
print(tuple(a))
執行結果為:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
2.直接使用 for 迴圈遍歷生成器物件,可以獲得各個元素,例如:
a = (x for x in range(1,10))
for i in a:
print(i,end=' ')
print(tuple(a))
執行結果為:
1 2 3 4 5 6 7 8 9 ()
3.使用 __next__() 方法遍歷生成器物件,也可以獲得各個元素,例如:
a = (x for x in range(3))
print(a.__next__())
print(a.__next__())
print(a.__next__())
a = tuple(a)
print("轉換後的元組:",a)
執行結果為:
012
轉換後的元組: ()
注意,無論是使用 for 迴圈遍歷生成器物件,還是使用 __next__() 方法遍歷生成器物件,遍歷後原生成器物件將不復存在,這就是遍歷後轉換原生成器物件卻得到空元組的原因。 Python 元組推導式
使用元組推導式可以快速生成乙個元組,其表現形式和列表推導式類似,只是將列表推導式中的中括號 修改為小括號 例如 生成乙個包含10個隨機數的元組。import random tuple1 random.randint 10,100 for i in range 10 print tuple1 執行結果...
Python列表推導式,集合推導式,元組推導式
先定義乙個列表a a 1,2,3,4,5,6,7,8 1a 1,2,3,4,5,6,7,8 列表推導 d i 2 for i in a 集合推導 e 元組推導 f i 2 for i in a print type d print type e print type f 輸出 123 4567 89...
Python元組 生成器推導式建立元組
生成器推導式建立元組 從形式上看,生成器推導式和列表推導式類似,只是生成器推導式使用小括號,列表推導式直接生成列表物件,生成器推導式生成的不是列表又不是元組,而是乙個生成器物件。我們可以通過生成器物件,轉成列表或者元組,也可以使用生成器物件 next 方法遍歷,或者直接使用迭代器物件來使用,不管什麼...