Python基礎 迭代器

2022-05-27 02:09:08 字數 762 閱讀 2375

可以直接作用於for迴圈的資料型別有一下幾種:

一類是集合資料型別:如list、tuple、dict、set、str等

一類是generator,包括生成器和帶yield的generator function

這些可以直接作用與for迴圈的物件統稱為可迭代物件:iterable

可以使用isinstance()判斷乙個物件是否是iterable物件 例如isinstance(,iterable)

迭代器:可以作用於for迴圈、還可以被__next__()函式不斷呼叫並返回下乙個值,直到最後丟擲stopiteration錯誤表示無法返回下乙個值。可以被__next__()函式呼叫並不斷返回下乙個值的物件成為迭代器:iterator;可以使用isinstance()判斷乙個物件是否是iterator物件

迭代物件(iterable)轉換成迭代器(iterator):

可以使用iter()函式將list、dict、str等iterable轉換成iterator

注:生成器一定是乙個迭代器(iterator物件),但是list、dict、str雖然是iterable物件但不是iterator物件

匯入iterable:from collections import iterable

匯入iterator:from collections import iterator

python 2.x中的xrange和python 3.x中的range都是乙個迭代器

總結:

Python基礎 迭代器

二 生成器 三 推導表示式 迭代器就是乙個容器,將可迭代物件通過iter包起來 li 1 2,3 4,5 a liter li 迭代器print next a 1print next a 2print next a 3 乙個個取值 1.訪問者不需要去關心內部結構,只需要通過next不斷去取下乙個內容...

python基礎 迭代器

我們已經知道,可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable。可以使用...

python基礎 迭代器

1.什麼是迭代器 2.為什麼要有迭代器?對於序列型別 字串 列表 元組,我們可以使用索引的方式迭代取出其包含的元素。但對於字典 集合 檔案等型別是沒有索引的,若還想取出其內部包含的元素,則必須找出一種不依賴於索引的迭代方式,這就是迭代器.3.什麼是可迭代物件?可迭代物件指的是內建有 iter 方法物...