日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

14生成器

發布時間:2024/9/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 14生成器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 生成器:生成器與迭代器可以看成一種,生成器的本質就是迭代器。
  • 唯一區別,生成器是我們自己用python代碼構建的數據結構,迭代器是系統提供的或者轉化得來的。
  • 獲取生成器的三種方式:
    • 生成器函數
    • 生成器表達式
    • python內部提供的一些

生成器函數獲得生成器

def func(): # 普通函數print(111)print(222)return 3 ret = func() print(ret) # 111 # 222 # 3 def func(): #生成器函數print(111)print(222)yield 3a = 1b = 2c = a + bprint(c)yield 4 ret = func()print(ret) # <generator object func at 0x0000020147426ED0> print(next(ret)) # 111 # 222 # 3 print(next(ret)) # 一個next對應一個yield # 3 # 4
  • return和yield的區別:
    • return:函數中只存在一個return結束函數,并且給函數的執行者返回值
    • yield:只要函數中有yield那么他就是生成器函數而不是函數
  • 生成器函數中可以存在多個yield,yield不會結束生成器函數,一個yield對應一個next
def func():lst = []for i in range(10000):lst.append("數據%s"% i)if i % 10 == 0:yield lstlst = [] # g = func() print(next(g)) #['數據0'] print(next(g)) # #['數據1', '數據2', '數據3', '數據4', '數據5', '數據6', '數據7', '數據8', '數據9', '數據10'] print(next(g)) # #['數據11', '數據12', '數據13', '數據14', '數據15', '數據16', '數據17', '數據18', '數據19', '數據20'] def gen():for i in range (10):yield ig = gen() # 生成器 a = g.__next__() print (a) a = g.__next__() print (a) a = g.__next__() print (a) # 0 # 1 # 2 for i in gen():print (i)# 0 1 2 3 4 5 6 7 8 9 # lst = list(g) print (lst) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] def func():for i in range(1,5001):yield f'{i}號數據' ret = func() for i in range(200):print(next(ret)) # 1號數據 # 2號數據 # 3號數據 # ...... # 200號數據 def func():l1 = [1,2,3,4,5]yield l1ret = func() print(next(ret)) #[1, 2, 3, 4, 5]def func():l1 = [1,2,3,4,5]yield from l1 # 將l1 這個列表變成了迭代器返回ret = func() print(next(ret)) # 1 print(next(ret)) # 2 def func():lst1 = ["衛龍","老冰棍","北冰洋","牛羊配"]lst2 = ["包子","饅頭","花卷","大餅"]yield from lst1yield from lst2g = func() for i in range(8):print(next(g))# 衛龍# 老冰棍# 北冰洋# 牛羊配# 包子# 饅頭# 花卷# 大餅

總結

以上是生活随笔為你收集整理的14生成器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。