学习笔记(18):第二章 程序设计与数据结构-Python的魔法功能,魅力之所在,让代码量更少 2...

立即学习: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')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值