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

Python生成器以及應(yīng)用實(shí)例解析

 更新時(shí)間:2018年02月08日 10:38:29   作者:返回主頁(yè) 劉小偉  
這篇文章主要介紹了Python生成器以及應(yīng)用實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是Python生成器及其應(yīng)用,具體如下。

一、定義

可以理解為一種數(shù)據(jù)類型,這種數(shù)據(jù)類型自動(dòng)實(shí)現(xiàn)了迭代器協(xié)議(其他的數(shù)據(jù)類型需要調(diào)用自己內(nèi)置的__iter__方法),所以生成器就是可迭代對(duì)象

二、生成器的兩種形式(Python有兩種不同的方式提供生成器)

1.生成器函數(shù):常規(guī)函數(shù)定義,但是,使用yield語(yǔ)句而不是return語(yǔ)句返回結(jié)果。yield語(yǔ)句一次返回一個(gè)結(jié)果,在每個(gè)結(jié)果中間,掛起函數(shù)的狀態(tài),以便下次重它離開的地方繼續(xù)執(zhí)行

yield的功能:

  1. 把函數(shù)的結(jié)果做生迭代器(以一種優(yōu)雅的方式封裝好__iter__,__next__)
  2. 函數(shù)暫停與再繼續(xù)運(yùn)行的狀態(tài)是由yield
def func():
  print('first')
  yield 11111111
  print('second')
  yield 2222222
  print('third')
  yield 33333333
  print('fourth')


g=func()
print(g)
from collections import Iterator
print(isinstance(g,Iterator)) #判斷是否為迭代器對(duì)象

print(next(g))
print('======>')
print(next(g))
print('======>')
print(next(g))
print('======>')
print(next(g))

for i in g: #i=iter(g)
  print(i)

注:yield與return的比較?

  • 相同:都有返回值的功能
  • 不同:return只能返回一次值,而yield可以返回多次值

2.生成器表達(dá)式:類似于列表推導(dǎo),但是,生成器返回按需產(chǎn)生結(jié)果的一個(gè)對(duì)象,而不是一次構(gòu)建一個(gè)結(jié)果列表

g=('egg%s' %i for i in range(1000))
print(g)
print(next(g))
print(next(g))
print(next(g))

with open('a.txt',encoding='utf-8') as f:
  # res=max((len(line) for line in f))
  res=max(len(line) for line in f)
  print(res)

print(max([1,2,3,4,5,6]))

with open('a.txt',encoding='utf-8') as f:
  g=(len(line) for line in f)
  print(max(g))
  print(max(g))
  print(max(g))

三、應(yīng)用

# [{'name': 'apple', 'price': 333, 'count': 3}, ]文件內(nèi)容
#通過生成器表達(dá)器完成對(duì)文件的讀完跟操作
with open('db.txt',encoding='utf-8') as f:
  info=[{'name':line.split()[0],
   'price':float(line.split()[1]),
   'count':int(line.split()[2])} for line in f if float(line.split()[1]) >= 30000]
  print(info)

總結(jié)

以上就是本文關(guān)于Python生成器以及應(yīng)用實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • python Pandas高級(jí)功能之?dāng)?shù)據(jù)透視表和字符串操作

    python Pandas高級(jí)功能之?dāng)?shù)據(jù)透視表和字符串操作

    Pandas是Python中用于數(shù)據(jù)處理和分析的強(qiáng)大庫(kù),這篇文章將深入探討Pandas庫(kù)的高級(jí)功能:數(shù)據(jù)透視表和字符串操作,需要的朋友可以參考下
    2023-07-07
  • 關(guān)于對(duì)python中self的深入理解

    關(guān)于對(duì)python中self的深入理解

    self代表類的實(shí)例,而非類,下面這篇文章主要給大家介紹了關(guān)于對(duì)python中self的深入理解,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Python爬蟲動(dòng)態(tài)IP代理使用及防止被封的方法

    Python爬蟲動(dòng)態(tài)IP代理使用及防止被封的方法

    在進(jìn)行網(wǎng)絡(luò)爬蟲時(shí),經(jīng)常會(huì)遇到網(wǎng)站的反爬機(jī)制,其中之一就是通過IP封禁來限制爬蟲的訪問,為了規(guī)避這種限制,使用動(dòng)態(tài)IP代理是一種有效的方法,本文將介紹在Python爬蟲中如何使用動(dòng)態(tài)IP代理,以及一些防止被封的方法,文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2023-11-11
  • python數(shù)據(jù)處理詳情

    python數(shù)據(jù)處理詳情

    這篇文章主要介紹了python數(shù)據(jù)處理詳情,文章通過json文件的一個(gè)數(shù)據(jù)表展開對(duì)主題的詳細(xì)說明,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-04-04
  • python批量實(shí)現(xiàn)Word文件轉(zhuǎn)換為PDF文件

    python批量實(shí)現(xiàn)Word文件轉(zhuǎn)換為PDF文件

    這篇文章主要為大家詳細(xì)介紹了python批量實(shí)現(xiàn)Word文件轉(zhuǎn)換為PDF文件的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • django通過ajax發(fā)起請(qǐng)求返回JSON格式數(shù)據(jù)的方法

    django通過ajax發(fā)起請(qǐng)求返回JSON格式數(shù)據(jù)的方法

    這篇文章主要介紹了django通過ajax發(fā)起請(qǐng)求返回JSON格式數(shù)據(jù)的方法,較為詳細(xì)的分析了django處理ajax請(qǐng)求的技巧,需要的朋友可以參考下
    2015-06-06
  • 解決win10 vscode 無法激活python 虛擬環(huán)境的問題

    解決win10 vscode 無法激活python 虛擬環(huán)境的問題

    這篇文章主要介紹了win10 vscode 無法激活python 虛擬環(huán)境的解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • Python中比較兩個(gè)字符串操作實(shí)例深究

    Python中比較兩個(gè)字符串操作實(shí)例深究

    本文深入探討Python中字符串比較的多種方法,并通過豐富的示例代碼演示如何靈活運(yùn)用這些技巧,從基本的相等性檢查到更高級(jí)的正則表達(dá)式模式匹配,讀者將了解如何利用Python強(qiáng)大的字符串處理功能,提高對(duì)字符串?dāng)?shù)據(jù)的操作技能,以解決日常編程任務(wù)中的挑戰(zhàn)
    2023-12-12
  • 使用python在本地電腦上快速處理數(shù)據(jù)

    使用python在本地電腦上快速處理數(shù)據(jù)

    這篇文章主要介紹了使用python在本地電腦上快速處理數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Python基于二分查找實(shí)現(xiàn)求整數(shù)平方根的方法

    Python基于二分查找實(shí)現(xiàn)求整數(shù)平方根的方法

    這篇文章主要介紹了Python基于二分查找實(shí)現(xiàn)求整數(shù)平方根的方法,涉及Python的二分查找算法與數(shù)學(xué)運(yùn)算相關(guān)技巧,需要的朋友可以參考下
    2016-05-05

最新評(píng)論

宣恩县| 连江县| 丹棱县| 黔江区| 乡宁县| 信宜市| 红安县| 凤山县| 凤台县| 嘉义县| 西和县| 增城市| 鲁甸县| 南宁市| 四川省| 彰化市| 水城县| 永寿县| 西盟| 商水县| 故城县| 新巴尔虎左旗| 金秀| 滕州市| 蓬莱市| 山西省| 龙门县| 舒城县| 城固县| 黔江区| 北辰区| 鄂温| 鄱阳县| 丽江市| 南康市| 咸阳市| 卢湾区| 茂名市| 泰来县| 成武县| 巴东县|