Python 元組推導式

2021-09-14 05:41:40 字數 1430 閱讀 9083

使用元組推導式可以快速生成乙個元組,其表現形式和列表推導式類似,只是將列表推導式中的中括號「」修改為小括號「()」。

例如:生成乙個包含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 方法遍歷,或者直接使用迭代器物件來使用,不管什麼...