050 python 生成器和迭代器

2021-10-10 03:37:10 字數 1367 閱讀 5459

# 列表生成式

list1 =

[x for x in

range(1

,10)]

print

(list1)

# 列表生產器

list2 =

(x for x in

range(1

,10))

print

(next

(list2)

)for i in list2:

print

("%s----"

% i)

defgan()

: a, b =0,

1while

true

:yield b

a, b = b,

(a+b)

# 生成器儲存的不是數字,是生成數字的演算法

g = gan(

)print

(next

(g))

print

(g.__next__)

print

(g.__next__)

print

(g.__next__)

from collections.abc import iterable

from collections.abc import iterator

a =(1,

)b =[1

,2]c =

deftest1

(arg):if

isinstance

(arg, iterable)

:print

("%s是可迭代物件"

% arg)

else

:print

("%s不是可迭代物件"

% arg)

test1(a)

test1(b)

test1(c)

deftest2

(arg):if

isinstance

(arg, iterator)

:print

("%s是迭代器"

% arg)

else

:print

("%s不是迭代器"

% arg)

test2(a)

test2(b)

test2(c)

test2((1

for i in

range(5

)))test2(

iter

(a))

test2(

iter

(b))

test2(

iter

(c))

迭代和生成器

列表迭代的本質 iter 函式返回乙個迭代器,然後可以呼叫迭代器上的next方法 arr 1,2,3,4,5 arr iterator arr.iter print arr iterator.next print next arr iterator 乙個典型的迭代器實現。例子來自 流暢的python...

Python迭代器和生成器

先說迭代器,對於string list dict tuple等這類容器物件,使用for迴圈遍歷是很方便的。在後台for語句對容器物件呼叫iter 函式,iter 是python的內建函式。iter 會返回乙個定義了next 方法的迭代器物件,它在容器中逐個訪問容器內元素,next 也是python的...

Python迭代器和生成器

迭代器是訪問集合元素的一種方法 是可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問 他有兩個基本的方法,iter 和next 字串,列表或遠足物件都可以用於建立迭代器 list1 1,2,3,4 it1 iter list1 建立迭代器物件 print next ...