立即学习:https://edu.csdn.net/course/play/25504/304704?utm_source=blogtoedu
迭代器:
for循环可以应用下列类型:
1、集合数据类型:list、tuple、dict、set、str等
2、generator,生成器和带yield的generator function等
直接可作用于for循环的叫可迭代对象:Iterable
直接可作用于next方法的叫可以生成器对象:Iterator --->可以看做有序数据流
生成器可以同时作用于for循环和next()函数,不断调研,知道跑出StopIteration错误
对于迭代器,需要先判断是否可迭代
from collections import Iterable
print(isinstance([],Iterable)) ---->True
# 判断一个对象是否是生成器 Iterator
from collections import Iterator
print(isinstance([],Iterator)) ---->False
iter([]) ---->变为生成器
print(isinstance(iter([]),Iterator)) ---->False
杨辉三角:
def triangles():
n,max,l = 0,5,[]
while n<max:
a=0
k=[]
for i in l:
k.append(a+i)
a = i
k.append(1)
yield k
l = k
n = n+1
n = 0
results = []
for t in triangles():
print(t)
results.append(t)
n = n+1
if n == 10:
break
if results ==[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1],
]:
print('PASS')
else:
print('FAIL')