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

python 字典item與iteritems的區(qū)別詳解

 更新時間:2020年04月25日 09:15:34   作者:zqhhuiyi  
這篇文章主要介紹了python 字典item與iteritems的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

綜述迭代器

對于原生支持隨機(jī)訪問的數(shù)據(jù)結(jié)構(gòu)(如tuple、list),迭代器和經(jīng)典for循環(huán)的索引訪問相比并無優(yōu)勢,反而丟失了索引值(可以使用內(nèi)建函數(shù)enumerate()找回這個索引值)。但對于無法隨機(jī)訪問的數(shù)據(jù)結(jié)構(gòu)(比如set)而言,迭代器是唯一的訪問元素的方式。

另外,迭代器的一大優(yōu)點(diǎn)是不要求事先準(zhǔn)備好整個迭代過程中所有的元素。迭代器僅僅在迭代到某個元素時才計(jì)算該元素,而在這之前或之后,元素可以不存在或者被銷毀。這個特點(diǎn)使得它特別適合用于遍歷一些巨大的或是無限的集合,比如幾個G的文件,或是斐波那契數(shù)列等等。

迭代器更大的功勞是提供了一個統(tǒng)一的訪問集合的接口,只要定義了iter()方法對象,就可以使用迭代器訪問。

例如:

List = [1,2,3]
L = List.__iter__()
>>> L.next()
1
>>> L.next()
2
>>> L.next()
3

為什么使用迭代器

for i in range(1000): pass
for i in xrange(1000): pass

前一個返回1000個元素的列表,而后一個在每次迭代中返回一個元素,因此可以使用迭代器來解決復(fù)用可占空間的問題

class Fab(object): 
 def __init__(self, max): 
 self.max = max
 self.n, self.a, self.b = 0, 0, 1

 def __iter__(self): 
 return self

 def next(self): 
 if self.n < self.max: 
  r = self.b 
  self.a, self.b = self.b, self.a + self.b 
  self.n = self.n + 1
  return r 
 raise StopIteration()

Fab 類通過 next() 不斷返回?cái)?shù)列的下一個數(shù),內(nèi)存占用始終為常數(shù) 

示例代碼2

def fab(max):
 n, a, b = 0, 0, 1
 while n < max:
 yield b
 a, b = b, a + b
 n = n = 1

簡單地講,yield 的作用就是把一個函數(shù)變成一個 generator,帶有 yield 的函數(shù)不再是一個普通函數(shù),Python 解釋器會將其視為一個 generator,調(diào)用 fab(5) 不會執(zhí)行 fab 函數(shù),而是返回一個 iterable 對象!

在 for 循環(huán)執(zhí)行時,每次循環(huán)都會執(zhí)行 fab 函數(shù)內(nèi)部的代碼,執(zhí)行到 yield b 時,fab 函數(shù)就返回一個迭代值,下次迭代時,代碼從 yield b 的下一條語句繼續(xù)執(zhí)行,而函數(shù)的本地變量看起來和上次中斷執(zhí)行前是完全一樣的,于是函數(shù)繼續(xù)執(zhí)行,直到再次遇到 yield。

看起來就好像一個函數(shù)在正常執(zhí)行的過程中被 yield 中斷了數(shù)次,每次中斷都會通過 yield 返回當(dāng)前的迭代值。

以上這篇python 字典item與iteritems的區(qū)別詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)時監(jiān)控logstash日志代碼

    python實(shí)時監(jiān)控logstash日志代碼

    這篇文章主要介紹了python實(shí)時監(jiān)控logstash日志代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 詳解用python寫一個抽獎程序

    詳解用python寫一個抽獎程序

    這篇文章主要介紹了用python寫一個抽獎程序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python小程序之在圖片上加入數(shù)字的代碼

    Python小程序之在圖片上加入數(shù)字的代碼

    這篇文章主要介紹了Python小程序之在圖片上加入數(shù)字的代碼,這個是小編今天練手的小程序,代碼簡單易懂,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • python3調(diào)用windows dos命令的例子

    python3調(diào)用windows dos命令的例子

    今天小編就為大家分享一篇python3調(diào)用windows dos命令的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python使用turtle庫寫六角形的思路與代碼

    python使用turtle庫寫六角形的思路與代碼

    學(xué)習(xí)Python,接觸到turtle包,就用它來畫一下六邊形,下面這篇文章主要給大家介紹了關(guān)于python使用turtle庫寫六角形的思路與代碼,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • 解讀torch.nn.GRU的輸入及輸出示例

    解讀torch.nn.GRU的輸入及輸出示例

    這篇文章主要介紹了解讀torch.nn.GRU的輸入及輸出示例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Python中文檔生成利器Sphinx的入門指南

    Python中文檔生成利器Sphinx的入門指南

    在Python開發(fā)過程中,良好的文檔是項(xiàng)目成功的關(guān)鍵之一,Sphinx是一個強(qiáng)大的文檔生成工具,本文將為大家詳細(xì)介紹Sphinx的具體使用,需要的可以參考下
    2025-01-01
  • python找出因數(shù)與質(zhì)因數(shù)的方法

    python找出因數(shù)與質(zhì)因數(shù)的方法

    這篇文章主要介紹了python找出因數(shù)與質(zhì)因數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python中使用print輸出中文的方法

    python中使用print輸出中文的方法

    今天小編就為大家分享一篇python中使用print輸出中文的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python接口自動化淺析logging日志原理及模塊操作流程

    Python接口自動化淺析logging日志原理及模塊操作流程

    這篇文章主要為大家介紹了Python接口自動化系列文章淺析logging日志原理及模塊操作流程,文中詳細(xì)說明了為什么需要日志?日志是什么?以及日志用途等基本的原理
    2021-08-08

最新評論

德昌县| 海门市| 栖霞市| 台南县| 儋州市| 广灵县| 台南县| 茂名市| 辽中县| 江门市| 扎鲁特旗| 凤冈县| 原平市| 寿光市| 白河县| 贡山| 鹤岗市| 博兴县| 清徐县| 沽源县| 光泽县| 广德县| 嘉兴市| 天镇县| 健康| 衡水市| 高雄县| 类乌齐县| 文登市| 建阳市| 三明市| 林芝县| 济南市| 隆化县| 淮北市| 柳林县| 陆河县| 遂宁市| 静乐县| 稷山县| 永丰县|