Python 入門之控制結構 迴圈結構(四)

2021-10-09 14:38:58 字數 3422 閱讀 1118

@r星校長

4關:迭代器

迭代器用來迴圈訪問一系列元素,它不僅可以迭代序列,也可以迭代不是序列但是表現出序列行為的物件。本關的任務是讓學習者理解與學會使用迭代器。

迭代器的優點

迭代器訪問與for迴圈訪問非常相似,但是也有不同之處。對於支援隨機訪問的資料結構如元組和列表,迭代器並無優勢。因為迭代器在訪問的時候會丟失資料索引值,但是如果遇到無法隨機訪問的資料結構如集合時,迭代器是唯一訪問元素的方式;

迭代器僅僅在訪問到某個元素時才使用該元素。在這之前,元素可以不存在,所以迭代器很適用於迭代一些無法預先知道元素總數的巨大的集合;

迭代器提供了乙個統一的訪問集合的介面,定義iter()方法物件,就可以使用迭代器訪問。

理解迭代器

可直接作用於for迴圈的資料型別如listtupledict等統稱為可迭代物件:iterable。使用isinstance()可以判斷乙個物件是否是可迭代物件。例如:

from collections import iterable

result =

isinstance([

],iterable)

print

(result)

result =

isinstance((

),iterable)

print

(result)

result =

isinstance

('python'

,iterable)

print

(result)

result =

isinstance

(213

,iterable)

print

(result)

結果為:

true

true

true

false

可以被next()函式呼叫並不斷返回下乙個值的物件稱為迭代器:iteratornext()函式訪問每乙個物件,直到物件訪問完畢,返回乙個stopiteration異常。使用isinstance()可以判斷乙個物件是否是iterator物件。例如:

from collections import iterator

result =

isinstance([

],iterator)

print

(result)

result =

isinstance((

),iterator)

print

(result)

result =

isinstance

((x for x in

range(10

)),iterator)

print

(result)

結果為:

false

false

true

所有的iterable都可以通過iter()函式轉化為iterator

定義迭代器

當自己定義迭代器時,需要定義乙個類。類裡面包含乙個iter()函式,這個函式能夠返回乙個帶next()方法的物件。例如:

class

myiterable

:def

__iter__

(self)

:return myiterator(

)class

myiterator

:def

__init__

(self)

: self.num =

0def

__next__

(self)

: self.num +=

1if self.num >=10:

raise stopiteration

return self.num

複製迭代器迭代器當一次迭代完畢後就結束了,在此呼叫便會引發stopiteration異常。如果想要將迭代器儲存起來,可以使用複製的方法:copy.deepcopy():x = copy.deepcopy(y),不可使用賦值的方法,這樣是不起作用的。

list =

member =

input()

for i in member.split(

',')

: result = i

#請在此新增**,將list轉換為迭代器的**

#********** begin *********#

iterlist =

iter

(list)

#********** end **********#

while

true

:try

:#請在此新增**,用next()函式遍歷iterlist的**

#********** begin *********#

num =

next

(iterlist)

#********** end **********#

result =

int(num)*2

print

(result)

except stopiteration:

break

預期輸入:5,

只要認為是對的就去做,堅持去做。不要在乎別人的看法,哪怕是錯,至少你有去做過證明曾經你努力過。

Python入門之(3 3)迴圈結構

目錄 迴圈結構 1.1while迴圈 1.2for迴圈 1.3break和continue語句 1.4迴圈中的else語句 1.5巢狀迴圈 1.6字串的遍歷迴圈 1.7pass語句 迴圈結構是結構化程式設計中常用的結構,可以簡化程式,或解決順序結構和選擇結構無法解決的問題。迴圈是指在滿足一定條件的情...

Python控制語句 迴圈結構

二.迴圈結構 1.while語句 while 判斷條件 執行語句 2.for語句 for 迴圈索引值 in 序列 迴圈體注 對於列表可通過索引 列表下標 遍歷 for i in range len fruits print 當前水果 fruits i 3.continue與break語句 4.迴圈巢...

python 迴圈結構控制語句。

迴圈的意思就是讓程式重複地執行某些語句。在實際應用中,當碰到需要多次重複地執行乙個或多個任務時,可考慮使用迴圈語句來解決。迴圈語句的特點是在給定條件成立時,重複執行某個程式段。通常稱給定條件為迴圈條件,稱反覆執行的程式段為迴圈體。在while語句中,當條件表示式為true時,就重複執行語句塊 當條件...