從形式上看,生成器推導式與列表推導式類似,只是生成器推導式使用小括號。列表推
導式直接生成列表物件,生成器推導式生成的不是列表也不是元組,而是乙個生成器物件。
我們可以通過生成器物件,轉化成列表或者元組。也可以使用生成器物件的__next__()
方法進行遍歷,或者直接作為迭代器物件來使用。不管什麼方式使用,元素訪問結束後,如
果需要重新訪問其中的元素,必須重新建立該生成器物件。
s=(x*2 for x in range(3))
print(s) #結果:at 0x00000212cb922150>
#生成器推導式生成的是生成器物件,還不是元組物件
a=tuple(s)
print(a) #結果:(0, 2, 4)
b=tuple(s)
print(b) #結果:(),生成器推導式只能迭代一次
m=(x*2 for x in range(3))
print(m.__next__()) #結果:0
print(m.__next__()) #結果:2
print(m.__next__()) #結果:4
print(m.__next__()) #結果報錯stopiteration,因為迭代完生成器推導式物件後指標就移動到最後一位了,當再次迭代時就會報錯
元組總結:
1. 元組的核心特點是:不可變序列。
2. 元組的訪問和處理速度比列表快。
3. 與整數和字串一樣,元組可以作為字典的鍵,列表則永遠不能作為字典的鍵使用。
Python元組 生成器推導式建立元組
生成器推導式建立元組 從形式上看,生成器推導式和列表推導式類似,只是生成器推導式使用小括號,列表推導式直接生成列表物件,生成器推導式生成的不是列表又不是元組,而是乙個生成器物件。我們可以通過生成器物件,轉成列表或者元組,也可以使用生成器物件 next 方法遍歷,或者直接使用迭代器物件來使用,不管什麼...
34 生成器推導式建立元組
從形式上看,生成器推導式與列表推導式類似,只是生成器推導式使用小括號。列表推 導式直接生成列表物件,生成器推導式生成的不是列表也不是元組,而是乙個生成器物件。我們可以通過生成器物件,轉化成列表或者元組。也可以使用生成器物件的 next 方法進行遍歷,或者直接作為迭代器物件來使用。不管什麼方式使用,元...
python生成器推導式
1.生成器推導式是繼列表推導式後的有一中python推導式,他比列表推導式速度更快,占用的記憶體也更少。2.使用生成器物件時,可以根據需要將他轉化為列表或者元組,也可以是喲個生成器對像 next 方法或內建函式next 進行遍歷,其具有惰性求值的特點,進行一次遍歷後便不能再次方位內部元素,即訪問一次...