Python3迭代器及其使用

2021-09-12 17:33:26 字數 653 閱讀 9012

# 生成器都是迭代器,迭代器不一定是生成器

# 字串、列表、元組、字典、集合都可以被for迴圈,說明他們都是可迭代的

l = [1, 2, 3, 4, 5]

# l.__iter__() 盡量不用 底層內建函式

d = iter(l)

print(d) # # 什麼是迭代器

# 滿足兩個條件 1 有iter方法 2 有next方法

print(next(d)) # 1

# for 迴圈內部做的三件事情

# 1 呼叫可迭代物件的iter方法返回乙個迭代器物件

# 2 不斷呼叫迭代器物件的next方法

# 3 處理stopiteration

from collections import iterable

print(isinstance([1, 2, 3], list)) # 判斷資料型別

l = [1, 2, 3, 4, 5]

d = iter(l)

print(d)

print(isinstance(l, list)) # 判斷是不是 列表

print(isinstance(d, iterable)) # 判斷是不是迭代器 注意引用包

要點:

python3 迭代器 python3 迭代器

auther aaron fan 可以直接作用於for迴圈的物件統稱為可迭代物件 iterable 可以使用isinstance 判斷乙個物件是否是iterable物件 from collections import iterable isinstance iterable true isinsta...

python3菜鳥 Python3 迭代器與生成器

如教程所說,迭代器和生成器算是 python 一大特色,其核心是基於迭代器協議來的。而平時我們經常使用的 for in 迴圈體,本質就是迭代器協議的一大應用。同時 python 內建的集合型別 字元 列表 元組 字典 都已經實現了迭代器協議,所以才能使用 for in 語句進行迭代遍歷。for in...

Python3 可迭代 和 迭代器

可迭代iterable 可用for迴圈的資料型別 1.集合資料型別,如list,tuple,dict,set,str等 2.generator,包括生成器和帶yield的generator function 生成器不但可以作用於for迴圈,還可以被next 函式不斷呼叫並返回下乙個值,直到最後丟擲s...