使用元組推導式可以快速生成乙個元組,其表現形式和列表推導式類似,只是將列表推導式中的中括號「」修改為小括號「()」。
例如:生成乙個包含10個隨機數的元組。
import random
tuple1=(random.randint(10,100) for i in range(10))
print(tuple1)
#執行結果
at 0x0000029ccd77e228>
訪問生成器物件從上面的結果中可以看出,使用元組推導式生成的結果不是乙個元組或者列表,而是乙個生成器物件,這一點和列表生成器是不同的。
1. 可以使用tuple()或list()將其轉換為元組或列表。如下:`
tuple1=("amy","swan")
newtuple=(ch*3 for ch in tuple1)
print(newtuple)
print(list(newtuple))
print(tuple(newtuple))
#執行結果
at 0x000001d476a514f8>
['amyamyamy', 'swanswanswan']
()
2.通過元組推導器生成的生成器物件可以通過for迴圈進行遍歷。如下:
tuple1=(233,32,57,44,83,590,651)
tuple2=(x for x in tuple1 if x<100)
for i in tuple2:
print(i,end=' ')
print(tuple(tuple2))
#執行結果
32 57 44 83 ()
3.直接使用_next()_進行便利。如下:
tuple1=(233,32,57,44,83,590,651)
tuple2=(x for x in tuple1 if x<100)
print(tuple2.__next__())
print(tuple2.__next__())
print(tuple2.__next__()) #到此為止,生成器中的元素還未列印完
print(tuple(tuple2))
#執行結果
3257
44(83,)
注意:
從上面三個示例中可以看出,無論通過哪種方式遍歷後,若想再使用該生成器物件,都必須重新建立乙個生成器,因為遍歷後的原生成器物件已經不存在了。
從最後乙個示例可以看出,每訪問生成器物件中的乙個元素,就會少乙個元素。
Python元組推導式
元組推導式可以利用 range 區間 元組 列表 字典和集合等資料型別,快速生成乙個滿足指定需求的元組。元組推導式的語法格式如下 表示式 for 迭代變數 in 可迭代物件 if 條件表示式 其中,用 括起來的部分,可以使用,也可以省略。通過和列表推導式做對比,你會發現,除了元組推導式是用 圓括號將...
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 方法遍歷,或者直接使用迭代器物件來使用,不管什麼...