(1)迭代器是用來訪問集合元素的一種方式。
(2)迭代器物件從集合的第乙個元素開始訪問,直到結束,迭代器只會前進不會後退。
(3)迭代器有2個基本方法:iter(),next()。
(4)字串,列表,元組都可用於建立迭代器。
#s = "abcdef"
#s = ['a', 'b', 'c']
s = ('a', 'b', 'c')
#建立迭代器物件
s_iter = iter(s)
#遍歷元素
#1、for迴圈遍歷
for x in s_iter:
print (x)
#2、next()方法遍歷,見下面的生成器例子
(1)使用了yield的函式被稱為生成器。
(2)生成器是乙個返回迭代器的函式,只能用於迭代操作。所以呼叫乙個迭代器函式,返回的是乙個迭代器物件。
(3)呼叫生成器函式時,每次遇到yield時,函式會儲存當前執行的引數的資訊,並返回yield的值,下一次呼叫next()方法時從上次保留的位置繼續執行。
import sys
def func(n):
#因為有yield所以這個函式是乙個生成器函式
while n < 5:
n += 1
yield n
f = func(0) #f是乙個迭代器物件
#1、可以使用for迴圈遍歷迭代器對應
for x in f:
print (x)
#結果: 1 2 3 4 5
#2、也可以使用next()方法進行迭代
while true:
try:
print (next(f))
except stopiteration:
sys.exit()
#結果: 1 2 3 4 5
滴滴面試題
1 快速排序和二分排序選乙個手寫。手寫了乙個快排。2 手寫乙個 eventemitter。3 手寫兩個陣列的交集。兩層 for 迴圈。將兩陣列排序後,使用雙指標去判斷。4 webpack 執行流程,seal 方法之後都有什麼?什麼時候生成 chunk 5 ts 中 thistype 是什麼?this...
滴滴實習面試題
本文寫於 2020 年 8 月 13 日 前兩天在滴滴進行了前端實習面試,有幾道題卡了一下。乙個陣列裡可能是基本資料型別,也可能是陣列,陣列裡還能巢狀陣列,例如 1,2,4,5,7 9 請將陣列扁平化,全部變成一維陣列 1,2,4,5,7,9 我第一次聽題目的時候沒聽清,所以直接寫了一次遍歷,判斷是...
關於迭代器的面試題
include include include using namespace std void printmy vector int main itor printmy vecint return 0 void printmy vectorvec 問輸出是幾?在dev編譯執行以後,結果是3,程式設...