迭代器和生成器

2022-07-29 16:54:16 字數 3343 閱讀 3113

迭代器

#

x='hello'

## print(dir(x))

#iter_test=x.__iter__()##

print(iter_test)

#print(iter_test.__next__())

#print(iter_test.__next__())

#print(iter_test.__next__())

#print(iter_test.__next__())

#print(iter_test.__next__())

#print(iter_test.__next__())

#l=[1,2,3]

#for i in l: #i_l=l.__iter_() i_l.__next__()

#print(i)

#index=0

#while index < len(l):

#print(l[index])

#index+=1

#iter_l=l.__iter__() #遵循迭代器協議,生成可迭代物件

#print(iter_l.__next__())

#print(iter_l.__next__())##

for i in l:

#print(i)s=#

for i in s:

#print(i)

#iter_s=s.__iter__()

#print(iter_s)

#print(iter_s.__next__())

#print(iter_s.__next__())

#print(iter_s.__next__())

#print(iter_s.__next__())

#dic=

#iter_d=dic.__iter__()

#print(iter_d.__next__())

#f=open('test.txt','r+')

## for i in f:

#iter_f=f.__iter__()

#print(iter_f)

#print(iter_f.__next__(),end='')

#print(iter_f.__next__(),end='')

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

#diedai_l=l.__iter__()

#while true:

#try:

#print(diedai_l.__next__())

#except stopiteration:

## print('迭代完畢了,迴圈終止了')

#break

l=['

die','

erzi

','sunzi

','chongsunzi']

iter_l=l.__iter__

()print

(iter_l)

#print(iter_l.__next__())

#print(iter_l.__next__())

#print(iter_l.__next__())

#print(iter_l.__next__())

#print(iter_l.__next__())

#print(next(iter_l)) #next()---->iter_l.__next__()

生成器

來自函式

',g)

#print(g.__next__())

#print(g.__next__())

#三元表示式

#name='alex'

#name='linhaifeng'

#res='sb' if name == 'alex' else '帥哥'

#print(res)

#列表解析

#egg_list=

#for i in range(10):##

print(egg_list)

l=['

雞蛋%s

' %i for i in range(10)]

#l1=['雞蛋%s' %i for i in range(10) if i > 5 ]

## l1=['雞蛋%s' %i for i in range(10) if i > 5 else i] #沒有四元表示式

#l2=['雞蛋%s' %i for i in range(10) if i < 5] #沒有四元表示式

print

(l)#

print(l1)

#print(l2)

#生成器表示式比列表解析更節省記憶體;

laomuji=('

雞蛋%s

' %i for i in range(10)) #

生成器表示式

print

(laomuji)

print(laomuji.__next__

())print(laomuji.__next__

())print

(next(laomuji))

print

(next(laomuji))

print

(next(laomuji))

print

(next(laomuji))

print

(next(laomuji))

print

(next(laomuji))

print

(next(laomuji))

print

(next(laomuji))

#print(next(laomuji))

l=[1,2,3,34]

#map(func,l)

#print(sum(l))

#print(sum())

#print(sum(i for i in range(10000000000000)))

生成器和迭代器

可以直接作用於for迴圈的物件稱為可迭代物件 iterable.可以用isinstance 判斷乙個物件是否是iterable物件。isinstance iterable true isinstance iterable true isinstance 235,iterable false 而生成器...

迭代器和生成器

1 迭代器的概念 print dir 告訴我列表的所有用法 有雙下劃線的所有方法叫做雙下方法,是c語言已經寫好的方法。你可以用不止一種方法呼叫它。列表的用法變集合 set dir 求交集 set dir set dir set dir 求列表,字典,字串它們的用法的交集 他們共同的用法 iterab...

生成器和迭代器

1.iterator 迭代器 舉例 我們對list使用for for i in 1,2,3,4 print i 12 34對string物件使用for for ch in python print ch py thon對字典物件使用for for k in print k yx對檔案使用for fo...