欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

python函數(shù)迭代器,python迭代器詳解

Python基礎之迭代器

一.什么是迭代器

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站建設、成都網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務建陽,十年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575

迭代器是用來迭代取值的工具。

而涉及到把多個值循環(huán)取出來的類型有:列表,字符串,元組,字段,集合,打開文件等。通過使用的遍歷方式有for···in···,while等,但是,這些方式只適用于有索引的數(shù)據(jù)類型。為了解決索引取的局限性,python提供了一種 不依賴于索引的取值方式:迭代器

注意:

二.可迭代對象

可迭代對象:但凡內(nèi)置有__iter__方法的都稱為可迭代對象

常見的可迭代對象:

1.集合數(shù)據(jù)類型,如list,tuple,dict,set,str等

2.生成器,包括生成器和帶yield的生成器函數(shù)。

三.如何創(chuàng)建迭代器

迭代器是一個包含數(shù)個值的對象。

迭代器是可以迭代的對象,這意味著您可以遍歷所有值。

從技術上講,在Python中,迭代器是實現(xiàn)迭代器協(xié)議的對象,該協(xié)議由方法 __iter__() 和 __next__() 組成。

簡而言之,一個類里面實現(xiàn)了__iter__()和__next__()這兩個魔法方法,那么這個類的對象就是可迭代對象。

四.迭代器的優(yōu)缺點

1.優(yōu)點

2.缺點

五.迭代器示例

另外,如果類Stu繼承了Iterator,那么Stu可以不用實現(xiàn)__iter__()方法

遍歷迭代器

StopIteration

如果你有足夠的 next() 語句,或者在 for 循環(huán)中使用,則上面的例子將永遠進行下去。

為了防止迭代永遠進行,我們可以使用 StopIteration 語句。

在 __next__() 方法中,如果迭代完成指定的次數(shù),我們可以添加一個終止條件來引發(fā)錯誤

python中的迭代器的理解?

9.9. 迭代器

現(xiàn)在你可能注意到大多數(shù)容器對象都可以用 for 遍歷:

for element in [1, 2, 3]:

print(element)

for element in (1, 2, 3):

print(element)

for key in {'one':1, 'two':2}:

print(key)

for char in "123":

print(char)

for line in open("myfile.txt"):

print(line, end='')

這種形式的訪問清晰、簡潔、方便。迭代器的用法在 Python 中普遍而且統(tǒng)一。在后臺, for 語句在容器對象中調用 iter() 。該函數(shù)返回一個定義了 __next__() 方法的迭代器對象,它在容器中逐一訪問元素。沒有后續(xù)的元素時, __next__() 拋出一個 StopIteration 異常通知 for 語句循環(huán)結束。你可以是用內(nèi)建的 next() 函數(shù)調用 __next__() 方法;以下是其工作原理的示例:

s = 'abc'

it = iter(s)

it

next(it)

'a'

next(it)

'b'

next(it)

'c'

next(it)

Traceback (most recent call last):

File "

", line 1, in ?

next(it)

StopIteration

了解了迭代器協(xié)議的后臺機制,就可以很容易的給自己的類添加迭代器行為。定義一個 __iter__() 方法,使其返回一個帶有 __next__() 方法的對象。如果這個類已經(jīng)定義了 __next__() ,那么 __iter__() 只需要返回 self:

Python的基礎知識之迭代器

迭代:按照一定的順序訪問集合中的每一個元素,或者叫遍歷(其他語言叫做遍歷);

可迭代對象(Iterable):能被迭代的對象,或者說直接作用于for循環(huán)的對象,可以通過for..in來遍歷的對象,比如數(shù)組(list)、元祖(tuple)字符串等;

迭代器(Iterator):能作用于next() 函數(shù),并不斷返回下一個值的對象稱為迭代器,是惰性計算的序列(很重要)

1、判斷一個對象是可迭代對象呢?方法是通過collections模塊的Iterable類型判斷

2、判斷一個對象是否是迭代器Iterator對象

3、可迭代對象Iterable轉化為迭代器對象Iterator

4、使用迭代器迭代

1、迭代器的特性

A.惰性計算數(shù)據(jù),節(jié)省內(nèi)存

B.能記錄狀態(tài),并通過next()函數(shù)執(zhí)行下一個狀態(tài)

C.具有可迭代性

2、集合數(shù)據(jù)類型如list、dict、str、tuple等是可迭代對象Iterable但不是迭代器Iterator,不過可以通過iter()函數(shù)轉化為一個Iterator對象

原因:Iterator對象表示的是一個數(shù)據(jù)流,Iterator對象可以被next()函數(shù)調用并不斷返回下一個數(shù)據(jù),直到?jīng)]有數(shù)據(jù)時拋出StopIteration錯誤。Iterator對象表示一個無限大的數(shù)據(jù),集合是有限集合,假如被next()到最后就是沒有返回直接carsh

3、生成器(generator)一定是迭代器,他是一種特殊的迭代器;

如果想了解更多Python知識,請查看

Python的基礎知識之生成器

Python的基礎知識之裝飾器

學無止境,學習Python的伙伴可以多多交流。

本文標題:python函數(shù)迭代器,python迭代器詳解
本文路徑:http://aaarwkj.com/article34/hchgpe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站制作、網(wǎng)站設計、網(wǎng)站排名、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司
国产一级二级三级黄色| 色国产精品一区在线观看| 欧美成人黄片免费播放| 国产黄的网站在线观看| 日韩精品精美视频在线观看| 久久国产精品久久国产精品| 久久久精品免费中文视频| 亚洲超清av在线播放一区二区| 玩弄丰满熟妇班主任老师| 国产精品日本欧美久久久| 正在播放老肥熟妇露脸| 欧美香蕉在线观看视频| 亚洲一级香蕉视频东京热| 亚洲av在线av天堂| av一区二区三区网站| 亚洲精品另类中文字幕| 日本一区二区高清网址| av毛片在线播放免费| 日进去了啊内射视频| 国产av综合一区二区三区最新| 极品少妇一级人妻av| 91精品产综合久久香蕉| 日本av人妻在线观看| 国产精品一级片一区二区 | 午夜高清影院免费观看| 青青草成人公开在线视频| 亚洲青青草原自拍偷拍| 精品国产av一区二区三广区| 日韩欧美亚洲一级黄片| 亚洲欧美综合日韩综合久久久| 欧美国产一级二级三级| 不卡的视频在线观看| 99久久中文字幕伊人| 亚洲成人日韩欧美在线| 亚洲欧美综合另类久久 | 熟女另类视频在线观看| 丰满高潮少妇在线观看 | 午夜视频在线看一区免费| 久久人体午夜激情视频| av色狠狠一区二区三区| 国产亚洲精品视频在线网|