zoukankan      html  css  js  c++  java
  • 生成器和迭代器,列表推导式

    迭代器
    可迭代协议 : 某个变量中含有__iter__方法,这个变量可迭代
    迭代器协议 : 某个变量中含有__iter__和__next__方
    迭代器和可迭代的关系:
    迭代器一定可迭代反之不成立
    迭代器的特点 :
    节省内存
    惰性运算
    只能取一次
    只能按照顺序取
    for循环和迭代器之间的关系
    如果是非迭代器,for循环会帮助我们把这个飞迭代器编程迭代
    帮助我们执行next方法从迭代器中取值
    帮助我们处理异常停止迭代
    生成器
    生成器就是迭代器
    我们怎么获得生成器??
    生成器函数
    生成器表达式
    什么是生成器函数?
    含有yield方法
    生成器函数有什么特点?
    调用的时候不执行
    返回一个生成器/迭代器
    从生成器中取值的方式和迭代器一样
    生成器函数和其他函数[本质上]我们得到的结果是相同的
    只不过中间的过程不同
    普通函数 必须得到所有结果之后才返回
    生成器函数 可以一边计算结果一边返回
    当已经有了一个列表,从这个列表中的每一个元素都需要做某个操作
    并且需要将操作的结果放在一个新的列表中
    适合使用列表推导式
    新的列表 = [每一个元素要做的操作 for 列表中的每一个元素 in 列表]
  • 相关阅读:
    haskell的分数运算
    我的自画像
    秋 天 19:4320:05
    不要逼孩子考100分
    看图写话
    转载:挺住,意味着一切
    Wpf UI框架 MaterialDesign 的使用记录
    通过蓝牙的RSSI计算两端之间的距离(一维定位)
    java tcp socket readline 阻塞问题处理
    Android Back返回键 退出
  • 原文地址:https://www.cnblogs.com/F18866/p/9958029.html
Copyright © 2011-2022 走看看