生成器表示式

2022-08-12 15:27:12 字數 519 閱讀 2677

#把列表推導式的換成()就是生成器表示式

#示例:把生一筐雞蛋變成給你乙隻老母雞,這也是生成器的特性

chicken=('雞蛋%s' %item for item in range(10))

print(chicken) #生成器物件記憶體位址

print(next(chicken))  #雞蛋0

print(next(chicken))  #雞蛋1

print(next(chicken))  #雞蛋2

print(next(chicken))  #雞蛋9

orfor k in chicken:

print(k)

示例:求檔案a.txt中最長的行的長度(長度按字元個數算,需要使用max函式)

with open('a.txt','r',encoding='utf-8) as f:

nums=(len(line) for line in f)

print(max(nums))

生成器表示式

生成器 生成器本質是迭代器,允許自定義邏輯的迭代器 迭代器和生成器區別 迭代器本身是系統內建的.重寫不了.而生成器是使用者自定義的,可以重寫迭代邏輯 生成器可以用兩種方式建立 1 生成器表示式 裡面是推導式,外面用圓括號 2 生成器函式 用def定義,裡面含有yield 1 生成器表示式 gener...

生成器 表示式

1.什麼是生成器?生成的工具。生成器是乙個 自定義 的迭代器,本質上是乙個迭代器。2.如何實現生成器但凡在函式內部定義了的yield,呼叫函式時,函式體 不會執行,會返回乙個結果,該結果就是乙個生成器。yield 每一次yield都會往生成器物件中新增乙個值。yield只能在函式內部定義 yield...

生成器表示式

普通的求和函式 def add n,i return n i 生成器物件 返回 0 1 2 3 def test for i in range 4 yield i 將test函式變成生成器物件 g test 簡單的for迴圈 for n in 1,10 g add n,i for i in g 第一...