Python筆記 Python高階特性 迭代器

2021-09-27 01:39:58 字數 2354 閱讀 8291

迭代器包含有next方法的實現,在正確的範圍內返回期待的資料以及長處範圍後能夠丟擲stopiteration的錯誤停止迭代

a.定義

集合(list,tuple,dict,str等),還有生成器(generator),當然也包括帶yield的生成器函式(generator function)。這些可以直接作用於for迴圈的物件統稱為可迭代物件(iterable)

b.如何判斷可迭代物件(iterable)

isinstance()語法:

isinstance(object,classinfo)

引數:object——例項物件

classinfo——可以是直接或間接類名、基本型別或者由它們組成的元組

返回值:

如果物件的型別於引數二的型別(classinfo)相同則返回true,否則返回false

例項:

a =

2print

(isinstance

(a,int))

# 列印結果 true

print

(isinstance

(a,str))

# 列印結果false

print

(isinstance

(a,(

str,

int,

list))

)# 列印結果true 是元組中的乙個返回true

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

from collections import iterable

print

(isinstance([

],iterable)

)# true 集合是可迭代物件

print

(isinstance

(,iterable)

)# true 字典是可迭代物件

print

(isinstance

('abc'

,iterable)

)# true 字串是可迭代物件

print

(isinstance

((x for x in

range(10

)),iterable)

)#true 生成器是可迭代物件

print

(isinstance

(100

,iterable)

)# false 整數型不是可迭代物件

a.定義

可以被next()函式呼叫並不斷返回下乙個值得物件稱為迭代器(iterator)

b.如何判斷乙個物件是否是迭代器物件?

同樣是使用isinstance()判斷

from collections import iterator

print

(isinstance

((x for x in

range(10

)),iterator)

)# 輸出結果:true

print

(isinstance([

],iterator)

)# false

print

(isinstance

(,iterator)

)# false

print

(isinstance

('abc'

,iterator)

)# false

生成器都是迭代器(iterator)物件,但集合(list),字典(dict)還有字串(str)雖然是可迭代物件(iterable),卻不是迭代器(iterator)

如果想讓集合,字典,字串等可迭代物件變成迭代器,可以使用iter()函式

list=[

1,2,

3]print

(next

(list))

# 輸出結果:typeerror: 'list' object is not an iterator

list=[

1,2,

3]l =iter

(list

)print

(next

(l))

# 輸出結果:1

a.凡是可作用於for迴圈的物件都是可迭代物件(iterable)型別

c.集合資料型別如list、dict、str等是可迭代物件(iterable)但是不是迭代器(iterator),不過可以通過iter()函式獲得乙個迭代器物件

python列表從低到高 Python列表高階

在 python 中,列表是一種有序的集合,可以儲存 0 到多個不同類似的元素。定義乙個列表,我們需要用中括號把裡面的元素包裹起來,並且用 英文逗號分隔。在列表元素的查詢上,我們可以通過索引來獲取我們想要的元素。列表的索引分為正向索引和反向索引。正向索引從0開始,反向索引從 1開始。列表的修改上,我...

python序列特性 Python 序列的高階特性

一.切片 字串 列表 元祖可以切片,字典和集合不能切片 二.迭代 1.任何可以迭代的物件都可以用for迴圈遍歷 2.字典的迭代 預設是通過key進行迭代的 集合 字典 3.字典的列舉 列舉只能返回返回兩個值,乙個是索引下標,乙個是迭代的元素 4.for 迴圈裡,同時引用了兩個變數,在 python ...

python猜積木 Python中樂高積木 函式

def 函式名 函式體return 返回值1 返回值2 二.函式的呼叫 函式名 實現答應返回值 print 函式名 總結 定義函式時,函式不執行 定義函式時,函式才執行 1.有引數的函式 1 必選引數 形式引數 def add x,y print x y 實參,x 1,y 2 add 1,2 2 預...