• 第5.5章 迭代器与生成器——CookBook笔记


    将迭代器打包成类,维护额外的状态

    __iter__ 实现为yield

    for驱动与其他驱动(需要额外一次iter())的实现差异

    委托到内置可迭代对象 与 基于生成器迭代的差异

    iter与for的实现关联

    手动访问迭代器中的元素

    可迭代对象

    迭代器对象

    调用next

    委托迭代

    定义__iter__方法,将迭代请求委托到,对象内部的容器

    生成器创建自定义迭代

    函数中出现了yield,转变为生成器

    只有在响应迭代操作才运行

    实现迭代协议

    简单方案:实现生成器

    反向迭代

    reversed

    要求: 长度确定,或实现了__reversed__

    否则先转化为列表

    定义有额外状态的生成器函数

    类,实现iter为生成器函数

    类实例,提供内部属性访问

    生成器需要与程序其他部分交互

    暴露属性,允许方法调用来获得控制

    需要额外调用一次iter,提取类中的迭代器

    迭代器切片

    itertolls.islice

    产生迭代器,访问需要的数据

    跳过开头一部分迭代元素

    itertools.dropwhile

    对可能的组合与排列

    itertools.permutations

         .combinations

    指定:长度,是否允许重复

    索引-值 迭代序列

    enumerate

    同时迭代多个序列

    zip

    取决于最短长度

    最长

    返回迭代器

    不同容器迭代

    chain

    创建数据管道

    生成器函数

    应用于解析,读取实时数据源,定期轮询

    yield作为数据生产者,内存高效性

    扁平化嵌套序列

    yield from 嵌套生成器

    合并多个有序序列,整体有序

    heapq.merge

    要求输入有序

    迭代器取代while循环

  • 相关阅读:
    jQuery的end() 方法
    jQuery.extend 函数使用详解
    AutoMapper完成Dto与Model的转换
    IoC实践--用Unity实现MVC5.0的IoC控制反转方法
    IoC实践--用Autofac实现MVC5.0的IoC控制反转方法
    Unity依赖注入使用详解
    React+BootStrap+ASP.NET MVC实现自适应和组件的复用
    oracle基础开发工具及常用命令
    Cisco配置发送日志到日志服务器
    Redis讲解
  • 原文地址:https://www.cnblogs.com/qmcj/p/9150070.html
Copyright © 2020-2023  润新知