最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python教程之生成器和匿名函數(shù)

 更新時(shí)間:2022年01月14日 09:48:12   作者:qq_43479892  
這篇文章主要為大家介紹了python生成器和匿名函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

生成器

01 什么是生成器?

記住兩個(gè)關(guān)鍵:

  • **生成器是一種特殊的函數(shù)方法。**意味著它和函數(shù)(def)密不可分。
  • 基于上一點(diǎn),只要函數(shù)中出現(xiàn)yield關(guān)鍵字,就是生成器函數(shù)。

初學(xué)的你,還是太難理解?

02 通俗的講解

你可以將生成器理解為一個(gè)盒子,你可以向這個(gè)盒子里隨意添加元素,當(dāng)你需要的時(shí)候,再取出來用。

請(qǐng)看下面的例子:

# 普通函數(shù)
def func():
    return 1
f = func()
print("函數(shù)返回值:",f)
->函數(shù)返回值:1
print("函數(shù)返回值的類型:",type(f))
->函數(shù)返回值的類型:<class 'int'>
# 生成器
def gen\_func():
    yield 1
    yield 2
g = gen_func()
print("生成器對(duì)象:",g)
->生成器對(duì)象:object gen\_func at 0x00000189B8CFF7C8>
print("生成器對(duì)象的類型:",type(g))
->生成器對(duì)象的類型:<class 'generator'>
# 讀取生成器對(duì)象的值,因?yàn)樯善饕彩且粋€(gè)迭代器,實(shí)現(xiàn)了python的迭代協(xié)議(即實(shí)現(xiàn)了\_\_iter\_\_方法)
for i in g:
 print("生成器對(duì)象的值:",i)
->生成器對(duì)象的值: 1
->生成器對(duì)象的值: 2

03 生成器到底有什么用?

作用:惰性求值(一邊循環(huán)一邊計(jì)算的機(jī)制),節(jié)省性能

04 生成器的常見用途?

  • 讀大文件
  • 網(wǎng)絡(luò)爬蟲 scrapy 框架
  • 協(xié)程

舉個(gè)例子:斐波那契數(shù)列(0,1,1,2,3,5…),打印斐波那契數(shù)列前50個(gè)元素

# 不使用生成器,會(huì)消耗大量內(nèi)存
def fib(idx):
   res=[]
   n, a, b = 0, 0, 1
   while n < idx:
       res.append(b)
       a, b = b, a+b
       n += 1
   return res
res = fib(100)
print(res)
# 使用生成器,可節(jié)約大量內(nèi)存
def gen\_fib(idx):
   n, a, b = 0, 0, 1
   while n < idx:
       yield b
       a, b = b, a+b
       n += 1
for i in gen_fib(100):
   print(i)

匿名函數(shù)

01 什么是匿名函數(shù)?

當(dāng):

  • 函數(shù)實(shí)現(xiàn)比較簡(jiǎn)單
  • 函數(shù)不需要被多個(gè)地方調(diào)用
  • 懶得給這個(gè)函數(shù)起名字時(shí),我們可以使用匿名函數(shù)。

初學(xué)的你,還是太難理解?

02 通俗的講解

你想實(shí)現(xiàn)一個(gè)求x的平方的函數(shù),但是這個(gè)函數(shù)太簡(jiǎn)單,不值得專門def定義,同時(shí),你忘記了平方的英文如何拼寫,要是命名成 “pingfang”,又顯得自己太low,于是乎,你可以不給這個(gè)函數(shù)起名字,還能實(shí)現(xiàn)它。這就是匿名函數(shù)lambda表達(dá)式。

比如:求一個(gè)數(shù)的平方

# 不用 lambda 表達(dá)式
def square(x):
    return x * x
print(square(2))
# 使用 lambda 表達(dá)式
# 寫法:lambda 返回值:計(jì)算表達(dá)式
s = lambda x: x * x
print(s(2))

總結(jié)

1 如果你是初學(xué)者,可以先不掌握生成器和匿名函數(shù),待學(xué)成python后,再行琢磨;

2 在實(shí)際工作中,生成器和匿名函數(shù)的使用頻次,相對(duì)較高,并且在面試中是高頻問點(diǎn)。

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Python中使用filter過濾列表的一個(gè)小技巧分享

    Python中使用filter過濾列表的一個(gè)小技巧分享

    這篇文章主要介紹了Python中使用filter過濾列表的一個(gè)小技巧分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Flask?使用類組織配置詳情

    Flask?使用類組織配置詳情

    這篇文章主要介紹了Flask使用類組織配置,在實(shí)際的項(xiàng)目中,我們一般都會(huì)建立三個(gè)環(huán)境:開發(fā)、測(cè)試和生產(chǎn)環(huán)境,這三種環(huán)境會(huì)使用不同的配置組合,為了能方便地切換配置,我們可以為不同的環(huán)境創(chuàng)建不同的配置文件,下面來看詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • python eventlet綠化和patch原理

    python eventlet綠化和patch原理

    這篇文章主要介紹了python eventlet綠化和patch原理,幫助大家更好的理解和學(xué)習(xí)python eventlet工具的使用,感興趣的朋友可以了解下
    2020-11-11
  • python GUI庫圖形界面開發(fā)之PyQt5瀏覽器控件QWebEngineView詳細(xì)使用方法

    python GUI庫圖形界面開發(fā)之PyQt5瀏覽器控件QWebEngineView詳細(xì)使用方法

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5瀏覽器控件QWebEngineView詳細(xì)使用方法,需要的朋友可以參考下
    2020-02-02
  • 詳解python中的time和datetime的常用方法

    詳解python中的time和datetime的常用方法

    Python time time() 返回當(dāng)前時(shí)間的時(shí)間戳(1970紀(jì)元后經(jīng)過的浮點(diǎn)秒數(shù))。這篇文章主要介紹了python之time和datetime的常用方法 ,需要的朋友可以參考下
    2019-07-07
  • Python實(shí)現(xiàn)中文文本關(guān)鍵詞抽取的三種方法

    Python實(shí)現(xiàn)中文文本關(guān)鍵詞抽取的三種方法

    文本關(guān)鍵詞抽取,是對(duì)文本信息進(jìn)行高度凝練的一種有效手段,通過3-5個(gè)詞語準(zhǔn)確概括文本的主題,幫助讀者快速理解文本信息,本文分別采用TF-IDF方法、TextRank方法和Word2Vec詞聚類方法,利用Python語言進(jìn)行開發(fā),實(shí)現(xiàn)文本關(guān)鍵詞的抽取,需要的朋友可以參考下
    2024-01-01
  • Python中pandas庫sort_values()方法的使用

    Python中pandas庫sort_values()方法的使用

    最后去看了有關(guān)于 sort_values 的文檔,成功解決先把單詞出現(xiàn)頻次由高往低依次排序,再把頻次相同的情況下的單詞按照 MD5 值排序這個(gè)問題,下面通過本文講解下Python中pandas庫sort_values()方法的使用,感興趣的朋友一起看看吧
    2023-07-07
  • Python模擬鍵盤輸入自動(dòng)登錄TGP

    Python模擬鍵盤輸入自動(dòng)登錄TGP

    這篇文章主要介紹了Python模擬鍵盤輸入自動(dòng)登錄TGP的示例代碼,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • python調(diào)用shell的方法

    python調(diào)用shell的方法

    這篇文章主要介紹了python調(diào)用shell的方法,python調(diào)用shell命令的方法有許多種,大家可以參考使用
    2013-11-11
  • tensorflow實(shí)現(xiàn)將ckpt轉(zhuǎn)pb文件的方法

    tensorflow實(shí)現(xiàn)將ckpt轉(zhuǎn)pb文件的方法

    這篇文章主要介紹了tensorflow實(shí)現(xiàn)將ckpt轉(zhuǎn)pb文件的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論

剑阁县| 南投县| 鄂托克旗| 土默特左旗| 定远县| 枞阳县| 蓬溪县| 卢龙县| 金阳县| 双鸭山市| 丹凤县| 新竹市| 崇礼县| 平凉市| 香港 | 新余市| 邵阳县| 鄢陵县| 太仆寺旗| 崇礼县| 嘉义县| 宁乡县| 通山县| 辽宁省| 文山县| 长春市| 永胜县| 扎鲁特旗| 潼南县| 额济纳旗| 西乌| 太仆寺旗| 鄂州市| 白玉县| 合作市| 黎川县| 雷山县| 孟连| 滦南县| 苍南县| 湖州市|