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

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

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

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

一、定義

可以理解為一種數(shù)據(jù)類(lèi)型,這種數(shù)據(jù)類(lèi)型自動(dòng)實(shí)現(xiàn)了迭代器協(xié)議(其他的數(shù)據(jù)類(lèi)型需要調(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),以便下次重它離開(kā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á)式:類(lèi)似于列表推導(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)容
#通過(guò)生成器表達(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的math模塊中的常用數(shù)學(xué)函數(shù)整理

    Python的math模塊中的常用數(shù)學(xué)函數(shù)整理

    這篇文章主要介紹了Python的math模塊中的常用數(shù)學(xué)函數(shù)整理,同時(shí)對(duì)運(yùn)算符的運(yùn)算優(yōu)先級(jí)作了一個(gè)羅列,需要的朋友可以參考下
    2016-02-02
  • Python實(shí)現(xiàn)yaml與json文件批量互轉(zhuǎn)

    Python實(shí)現(xiàn)yaml與json文件批量互轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)yaml與json文件的批量互轉(zhuǎn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-07-07
  • Python中MySQL數(shù)據(jù)遷移到MongoDB腳本的方法

    Python中MySQL數(shù)據(jù)遷移到MongoDB腳本的方法

    MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。本文給大家介紹Python中MySQL數(shù)據(jù)遷移到MongoDB腳本的方法,需要的朋友參考下
    2016-04-04
  • Pandas?DataFrame列快速轉(zhuǎn)換為列表(3秒學(xué)會(huì)!)

    Pandas?DataFrame列快速轉(zhuǎn)換為列表(3秒學(xué)會(huì)!)

    這篇文章主要給大家介紹了關(guān)于Pandas?DataFrame列如何快速轉(zhuǎn)換為列表的相關(guān)資料,在Python的pandas庫(kù)中可以使用DataFrame的tolist()方法將DataFrame轉(zhuǎn)化為列表,需要的朋友可以參考下
    2023-10-10
  • Python基于OpenCV實(shí)現(xiàn)視頻的人臉檢測(cè)

    Python基于OpenCV實(shí)現(xiàn)視頻的人臉檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了Python基于OpenCV實(shí)現(xiàn)視頻的人臉檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python學(xué)習(xí)小技巧總結(jié)

    Python學(xué)習(xí)小技巧總結(jié)

    本篇文章給大家總結(jié)了關(guān)于python相關(guān)知識(shí)點(diǎn)學(xué)習(xí)的技巧以及難點(diǎn),有興趣的朋友可以參考學(xué)習(xí)下。
    2018-06-06
  • python遠(yuǎn)程連接服務(wù)器MySQL數(shù)據(jù)庫(kù)

    python遠(yuǎn)程連接服務(wù)器MySQL數(shù)據(jù)庫(kù)

    這篇文章主要為大家詳細(xì)介紹了python遠(yuǎn)程連接服務(wù)器MySQL數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python處理xml文件的方法小結(jié)

    python處理xml文件的方法小結(jié)

    這篇文章主要介紹了python處理xml文件的方法,結(jié)合實(shí)例形式總結(jié)分析了Python常見(jiàn)的xml文件處理技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • python paramiko連接ssh實(shí)現(xiàn)命令

    python paramiko連接ssh實(shí)現(xiàn)命令

    這篇文章主要為大家介紹了python paramiko連接ssh實(shí)現(xiàn)的命令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • python計(jì)算列表內(nèi)各元素的個(gè)數(shù)實(shí)例

    python計(jì)算列表內(nèi)各元素的個(gè)數(shù)實(shí)例

    今天小編就為大家分享一篇python計(jì)算列表內(nèi)各元素的個(gè)數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06

最新評(píng)論