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

Python列表推導式與生成器用法分析

 更新時間:2018年08月02日 09:32:08   作者:bitcarmanlee  
這篇文章主要介紹了Python列表推導式與生成器用法,結合實例形式分析了列表推導式、生成器的原理、使用方法及相關操作注意事項,需要的朋友可以參考下

本文實例講述了Python列表推導式與生成器用法。分享給大家供大家參考,具體如下:

1. 先看兩個列表推導式

def t1():
  func1 = [lambda x: x*i for i in range(10)]
  result1 = [f1(2) for f1 in func1]
  print result1
def t2():
  func2 = [lambda x, i=i: x*i for i in range(10)]
  result2 = [f2(2) for f2 in func2]
  print result2

上面是兩個列表推導式,里面包含有lambda表達式。輸出結果分別為:

[18, 18, 18, 18, 18, 18, 18, 18, 18, 18]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

2. 為什么結果會不同

在上面的例子中,列表解析會生成一系列的函數對象。例如

def func():
  pass

會產生一個名為func的函數對象。注意不同于func(),加上小括號以后,此時變?yōu)榱苏{用函數對象。

函數對象只有在調用的時候才開始對內部的變量進行引用。在t1()方法中,對i來說, 當函數對它引用的時候, 它已經變?yōu)?, 所以10個函數都引用了i=9。

而對于t2()方法來說,lambda函數相當于變成接受兩個參數了,所以返回了不一樣的結果。

3. 另外的方式

def t3():
  func3 = (lambda x: x*i for i in range(10))
  result3 = [f3(2) for f3 in func3]
  print result3

上面的代碼,輸出的結果為:

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

此時,相當于把列表推導式變成了生成器,結果又不一樣了!

對于生成器, 只有你需要的時候它才會求值, 這也是和列表解析式的區(qū)別, 列表解析式只要你運行, 馬上就把i變?yōu)榱?, 可是生成器不會, 當你調用第一個函數的時候, 他把相應的i求出來, 然后停止, 等你下一次調用, 這個就完美符合我們的預期了.

更多關于Python相關內容可查看本站專題:《Python列表(list)操作技巧總結》、《Python字符串操作技巧匯總》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • 對numpy中的where方法嵌套使用詳解

    對numpy中的where方法嵌套使用詳解

    今天小編就為大家分享一篇對numpy中的where方法嵌套使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python標準庫itertools的使用方法

    Python標準庫itertools的使用方法

    本文匯總整理了Python標準庫itertools的使用方法,并提供簡單應用示例;如果還不能滿足你的要求,歡迎加入補充
    2020-01-01
  • pandas實現datetime64與unix時間戳互轉

    pandas實現datetime64與unix時間戳互轉

    這篇文章主要介紹了pandas實現datetime64與unix時間戳互轉,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • django表單實現下拉框的示例講解

    django表單實現下拉框的示例講解

    今天小編就為大家分享一篇django表單實現下拉框的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python中pandas輸出完整、對齊的表格的方法

    python中pandas輸出完整、對齊的表格的方法

    今天使用python計算數據相關性,但是發(fā)現計算出的表格中間好多省略號,而且也不對齊。怎么解決這個問題,下面小編給大家?guī)砹藀ython中pandas如何輸出完整、對齊的表格,感興趣的朋友一起看看吧
    2021-10-10
  • Pytorch mask_select 函數的用法詳解

    Pytorch mask_select 函數的用法詳解

    今天小編就為大家分享一篇Pytorch mask_select 函數的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 利用Python改正excel表格數據

    利用Python改正excel表格數據

    這篇文章主要介紹了利用Python改正excel表格數據,運用面向過程寫的,將每一步都放在了不同的函數中,下文詳細過程介紹需要的小伙伴可以參考一下
    2022-06-06
  • pytorch如何自定義數據集

    pytorch如何自定義數據集

    這篇文章主要介紹了pytorch自定義數據集,在識別手寫數字的例子中,數據集是直接下載的,但如果我們自己收集了一些數據,存在電腦文件夾里,我們該如何把這些數據變?yōu)榭梢栽赑yTorch框架下進行神經網絡訓練的數據集呢,即如何自定義數據集呢,需要的朋友可以參考下
    2024-01-01
  • Python單元測試模塊doctest的具體使用

    Python單元測試模塊doctest的具體使用

    這篇文章主要介紹了Python單元測試模塊doctest的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • python提效小工具之統計xmind用例數量(源碼)

    python提效小工具之統計xmind用例數量(源碼)

    這篇文章主要介紹了python提效小工具之統計xmind用例數量,利用python開發(fā)小工具,實現同一份xmind文件中一個或多個sheet頁的用例數量統計功能,需要的朋友可以參考下
    2022-10-10

最新評論