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

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)站維護公司
少妇高潮视频在线观看| 精品一级人片内射视频| 大胆丰满邻居少妇在线观看| 国产一区二区三区在线观看俏佳人| 亚洲欧美日韩国产一区二区三区 | 久久99久久久久久精品| 97视频精品免费观看| 国内成人午夜激情视频| 九九热精品视频美谷朱里| 午夜在线免费观看小视频| 日韩精品女性三级视频| 天堂av在线免费观看| 成人精品超碰一区二区| 午夜国产激情福利网站| 久久精品一区二区三区乱码| 免费黄色福利网址大片| 国产精品毛片一区内射| 亚洲国产99在线精品一区| 天天操天天干蜜桃av| 依依成人影院在线观看av| 一区二区三区欧美影片| 97国产精品成人免费视频| 亚洲国产精品视频自拍| 中文字幕日本专区人妻| 日本在线观看精品综合| 亚洲国产成人午夜精品| 免费av不卡一区二区| av天堂官网在线人妻| 国产精品高清国产三级av| 亚洲国产中文一区二区久久| 国产在线一区二区三区不卡| 日日夜夜天天操天天干| 亚洲欧美丝袜清纯另类| 国产传媒网站在线观看| 日韩欧美国产一区二区精品| 天堂av影片在线观看| 国产成人免费视频一区| 91精品人妻一区二区三区 | 日本一区二区最新免费| av在线观看亚洲天堂| 国产成年人在线免费观看|