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

Python迭代器定義與簡單用法分析

 更新時(shí)間:2018年04月30日 12:00:12   作者:Tom文星  
這篇文章主要介紹了Python迭代器定義與簡單用法,結(jié)合實(shí)例形式分析了迭代器的概念、原理、創(chuàng)建及使用方法,需要的朋友可以參考下

本文實(shí)例講述了Python迭代器定義與簡單用法。分享給大家供大家參考,具體如下:

一、什么是迭代器

迭代,顧名思義就是重復(fù)做一些事很多次(就現(xiàn)在循環(huán)中做的那樣)。迭代器是實(shí)現(xiàn)了__next__()方法的對象(這個(gè)方法在調(diào)用時(shí)不需要任何參數(shù)),它是訪問可迭代序列的一種方式,通常其從序列的第一個(gè)元素開始訪問,直到所有的元素都被訪問才結(jié)束。 [注意]:迭代器只能前進(jìn)不能后退

[迭代器的優(yōu)點(diǎn)]:

使用迭代器不要求事先準(zhǔn)備好整個(gè)迭代過程中的所有元素。迭代器僅僅在迭代到某個(gè)元素時(shí)才計(jì)算該元素,而在這之前或之后元素可以不存在或者被銷毀。因此迭代器適合遍歷一些數(shù)量巨大甚至無限的序列。

 二、創(chuàng)建迭代器

A、使用內(nèi)建的工廠函數(shù)iter(iterable)可以將可迭代序列轉(zhuǎn)換為迭代器

a=[1,2,3,4]
b=(1,2,3)
str='Tomwenxing'
print(iter(a))
print(iter(b))
print(iter(str))

運(yùn)行結(jié)果:

<listiterator object at 0x0000000001D6D550>
<tupleiterator object at 0x0000000001D6D550>
<iterator object at 0x0000000001D6D550>

B、自定義迭代器

•Python中迭代器的本質(zhì)上每次調(diào)用__next__()方法都返回下一個(gè)元素或拋出StopIteration的容器對象

•由于Python中沒有“迭代器”這個(gè)類,因此具有以下兩個(gè)特性的類都可以稱為“迭代器”類:

  1、有__next__()方法,返回容器的下一個(gè)元素或拋出StopIteration異常

  2、有__iter__()方法,返回迭代器本身

#斐波那契數(shù)列
class Fabs():
  def __init__(self,max):
    self.max=max
    self.n,self.a,self.b=0,0,1
  def __iter__(self):#定義__iter__方法
    return self
  def __next__(self):#定義__next__方法
    if self.n<self.max:
      tmp=self.b
      self.a,self.b=self.b,self.a+self.b
      #等價(jià)于:
      #t=(self.a,self.a+self.b)
      #self.a=t[0]
      #self.b=t[1]
      self.n+=1
      return tmp
    raise StopIteration
print(Fabs(5))
for item in Fabs(10):
  print(item,end=' ')

運(yùn)行結(jié)果:

<__main__.Fabs object at 0x00000000023F9278>
1 1 2 3 5 8 13 21 34 55

三、迭代器的方法

1.iter.__next__():返回迭代器的下一個(gè)元素,但沒有下一個(gè)元素時(shí)拋出StopIteration異常

list=[1,2,3,4]
list=iter(list)
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())

運(yùn)行結(jié)果:

Traceback (most recent call last):
  File "E:\py3Demo\Hello\iterDemo.py", line 7, in <module>
    print(list.__next__())
StopIteration
1
2
3
4

2.iter.__iter__():返回迭代器對象本身

list=[1,2,3,4]
list=iter(list)
print(list.__iter__())

運(yùn)行結(jié)果:

<list_iterator object at 0x0000000001D6F208>

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python3使用matplotlib繪制條形圖

    python3使用matplotlib繪制條形圖

    這篇文章主要為大家詳細(xì)介紹了python3使用matplotlib繪制條形圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python實(shí)現(xiàn)圖像去噪方式(中值去噪和均值去噪)

    Python實(shí)現(xiàn)圖像去噪方式(中值去噪和均值去噪)

    今天小編就為大家分享一篇Python實(shí)現(xiàn)圖像去噪方式(中值去噪和均值去噪),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python基于TCP實(shí)現(xiàn)會(huì)聊天的小機(jī)器人功能示例

    Python基于TCP實(shí)現(xiàn)會(huì)聊天的小機(jī)器人功能示例

    這篇文章主要介紹了Python基于TCP實(shí)現(xiàn)會(huì)聊天的小機(jī)器人功能,結(jié)合實(shí)例形式分析了Python通過socket模塊實(shí)現(xiàn)TCP連接的客戶端與服務(wù)器端模擬聊天機(jī)器人功能相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • 使用python 打開文件并做匹配處理的實(shí)例

    使用python 打開文件并做匹配處理的實(shí)例

    今天小編就為大家分享一篇使用python 打開文件并做匹配處理的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • gethostbyaddr在Python3中引發(fā)UnicodeDecodeError

    gethostbyaddr在Python3中引發(fā)UnicodeDecodeError

    本文介紹了gethostbyaddr()在Python?3中引發(fā)UnicodeDecodeError的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-05-05
  • Python?xmltodict實(shí)現(xiàn)簡化XML數(shù)據(jù)處理

    Python?xmltodict實(shí)現(xiàn)簡化XML數(shù)據(jù)處理

    Python社區(qū)為提供了xmltodict庫,它專為簡化XML與Python數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換而設(shè)計(jì),本文主要來為大家介紹一下如何使用xmltodict實(shí)現(xiàn)簡化XML數(shù)據(jù)處理,希望對大家有所幫助
    2025-01-01
  • Pandas搭配lambda組合使用詳解

    Pandas搭配lambda組合使用詳解

    大家好,在之前文章中,我們介紹了很多 Python 用法。喜歡的朋友可以看一下歷史文章。今天我給大家講講lambda與pandas模塊配合使用方法,熟練掌握可以極大地提高數(shù)據(jù)分析與挖掘的效率
    2022-01-01
  • python調(diào)用新浪微博API項(xiàng)目實(shí)踐

    python調(diào)用新浪微博API項(xiàng)目實(shí)踐

    因?yàn)樽罱佑|到調(diào)用新浪微博開放接口的項(xiàng)目,所以就想試試用python調(diào)用微博API,需要的朋友可以參考下
    2014-07-07
  • pytorch 把圖片數(shù)據(jù)轉(zhuǎn)化成tensor的操作

    pytorch 把圖片數(shù)據(jù)轉(zhuǎn)化成tensor的操作

    這篇文章主要介紹了pytorch 把圖片數(shù)據(jù)轉(zhuǎn)化成tensor的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 淺析Windows 嵌入python解釋器的過程

    淺析Windows 嵌入python解釋器的過程

    這篇文章主要介紹了Windows 嵌入python解釋器的過程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評論

旬阳县| 天峻县| 太原市| 河曲县| 大丰市| 南充市| 新营市| 常山县| 门源| 原阳县| 汉源县| 同江市| 宁南县| 新绛县| 阳曲县| 綦江县| 新田县| 云龙县| 临沧市| 永胜县| 临泉县| 巴林右旗| 林州市| 揭西县| 濮阳市| 高清| 沙雅县| 赫章县| 丁青县| 阳新县| 公安县| 共和县| 万年县| 通州区| 青阳县| 武威市| 榕江县| 武夷山市| 富锦市| 随州市| 富川|