91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python生成器以及應用實例解析

發布時間:2020-10-04 17:17:13 來源:腳本之家 閱讀:111 作者:返回主頁 劉小偉 欄目:開發技術

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

一、定義

可以理解為一種數據類型,這種數據類型自動實現了迭代器協議(其他的數據類型需要調用自己內置的__iter__方法),所以生成器就是可迭代對象

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

1.生成器函數:常規函數定義,但是,使用yield語句而不是return語句返回結果。yield語句一次返回一個結果,在每個結果中間,掛起函數的狀態,以便下次重它離開的地方繼續執行

yield的功能:

  1. 把函數的結果做生迭代器(以一種優雅的方式封裝好__iter__,__next__)
  2. 函數暫停與再繼續運行的狀態是由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)) #判斷是否為迭代器對象

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.生成器表達式:類似于列表推導,但是,生成器返回按需產生結果的一個對象,而不是一次構建一個結果列表

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))

三、應用

# [{'name': 'apple', 'price': 333, 'count': 3}, ]文件內容
#通過生成器表達器完成對文件的讀完跟操作
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)

總結

以上就是本文關于Python生成器以及應用實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

白河县| 龙州县| 甘肃省| 慈利县| 敖汉旗| 瓦房店市| 朝阳区| 涟水县| 巴青县| 阜南县| 通州市| 竹北市| 虞城县| 沿河| 上饶市| 木里| 江都市| 临潭县| 都江堰市| 贺州市| 盐源县| 朝阳市| 东乡县| 永新县| 夏邑县| 北碚区| 尤溪县| 临沭县| 普兰县| 富阳市| 祁阳县| 阳泉市| 旅游| 永吉县| 隆尧县| 柏乡县| 通城县| 濉溪县| 囊谦县| 谷城县| 南开区|