欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單了解python 生成器 列表推導式 生成器表達式

 更新時間:2019年08月22日 11:19:06   作者:Clara51  
這篇文章主要介紹了簡單了解python 生成器 列表推導式 生成器表達式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

生成器就是自己用python代碼寫的迭代器,生成器的本質(zhì)就是迭代器。

通過以下兩種方式構(gòu)建一個生成器:

1、通過生成器函數(shù)

2、生成器表達式

生成器函數(shù):

函數(shù)

def func1(x):
   x += 1
   return x
 print(func1(5))

生成器函數(shù)

def func1(x):
   x += 1
   yield x
 g_obj = func1(5)
 print(g_obj.__next__())

一個next對應一個yield。

yield VS return

return 結(jié)束函數(shù),給函數(shù)的執(zhí)行者返回值

yield 不會結(jié)束函數(shù),一個next對應一個yield,給生成器對象。__next__()返回值。

生成器函數(shù) VS 迭代器

區(qū)別1:自定制的區(qū)別:

l1 = [1,2,3,4,5]
 l1.__iter__()
 def func1(x):
   x += 1
   yield x
   x += 3
   yield x
   x += 5
   yield x
g1 = func1(5)
print(g1.__next__())
print(g1.__next__())
print(g1.__next__())

區(qū)別2:內(nèi)存級別的區(qū)別。

迭代器是需要可迭代對象進行轉(zhuǎn)化,可迭代對象非常占內(nèi)存

生成器直接創(chuàng)建,不需要轉(zhuǎn)化,從本質(zhì)就節(jié)省內(nèi)存

send & next

send與next一樣,也是對生成器取值(執(zhí)行一個yield)的方法。

send 可以給上一個yield傳值,第一次取值永遠都是next

最后一個yield永遠也得不到send的值

列表推導式:一行代碼搞定所需要的任何列表

循環(huán)模式 格式:[變量(加工后的變量)for 變量 in interable

lis = [i for i in range(1,101)]
print(lis)
lis = ['騎士計劃%s期'% i for i in range(1,16)]
print(lis)
lis = [i**2 for i in range(1,11)]
print(lis)
print([i for i in range(1,31) if i % 3 == 0])
print([i*i for i in range(1,31) if i % 3 is 0 ])

篩選模式:

names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
     ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
print([q for name in names for q in name if q.count('e') >= 2])

列表推導式

優(yōu)點:一行解決,方便

缺點:容易著迷,不易排錯,不能超過三次循環(huán)

列表推導式不能解決所有列表的問題,無需刻意使用

生成器表達式:將列表推導式的 [] 換成 () 即可

g = (i for i in range(199))
print(g.__next__())
print(g.__next__())
print(g.__next__())
print(g.__next__())
print(g.__next__())
print(g.__next__())
print(g.__next__())

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Pycharm安裝python庫的方法

    Pycharm安裝python庫的方法

    這篇文章主要介紹了Pycharm安裝python庫的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Python3 tkinter 實現(xiàn)文件讀取及保存功能

    Python3 tkinter 實現(xiàn)文件讀取及保存功能

    tkinter是一個跨平臺的GUI庫,開發(fā)的程序可以在win,linux或者mac下運行,tkinter是python自帶的GUI庫,是對圖形庫TK的封裝。本文通過實例代碼給大家介紹Python3 tkinter 實現(xiàn)文件讀取及保存功能,感興趣的朋友跟隨小編一起看看吧
    2019-09-09
  • Python3 批量掃描端口的例子

    Python3 批量掃描端口的例子

    今天小編就為大家分享一篇Python3 批量掃描端口的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Matplotlib繪圖基礎之子圖詳解

    Matplotlib繪圖基礎之子圖詳解

    這篇文章主要為大家詳細介紹了Matplotlib繪制子圖的常用方式和技巧,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的可以了解一下
    2023-07-07
  • 解讀殘差網(wǎng)絡(Residual Network),殘差連接(skip-connect)

    解讀殘差網(wǎng)絡(Residual Network),殘差連接(skip-connect)

    這篇文章主要介紹了殘差網(wǎng)絡(Residual Network),殘差連接(skip-connect),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python編寫一個圖片自動播放工具(過程詳解)

    Python編寫一個圖片自動播放工具(過程詳解)

    使用Python和Pygame庫,可以編寫一個圖片自動播放工具,實現(xiàn)圖片的加載、自動循環(huán)播放及用戶交互功能,工具支持暫停、繼續(xù)、手動切換圖片和調(diào)整播放速度,適合在電腦上方便地瀏覽和展示圖片,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • django使用admin站點上傳圖片的實例

    django使用admin站點上傳圖片的實例

    今天小編就為大家分享一篇django使用admin站點上傳圖片的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python刪除過期文件的方法

    python刪除過期文件的方法

    這篇文章主要介紹了python刪除過期文件的方法,涉及Python日期與文件的相關操作技巧,需要的朋友可以參考下
    2015-05-05
  • 使用Python制作一個打字訓練小工具

    使用Python制作一個打字訓練小工具

    這篇文章主要介紹了用Python制作一個打字訓練小工具,本文通過實例代碼的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • python3實現(xiàn)常見的排序算法(示例代碼)

    python3實現(xiàn)常見的排序算法(示例代碼)

    排序是非常常見的排序算法,今天給大家分享幾種比較常見的排序算法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-07-07

最新評論