zoukankan      html  css  js  c++  java
  • python知识点

    一.可迭代 ---与-----序列

    可迭代是任何你可以用python中的for循环遍历的东西。可迭代意味这可以遍历,任何可以遍历的东西都是可迭代的。

    序列是一种非常常见的可迭代类型,列表,元组和字符串都是序列。

    序列是可迭代的,他又一些特定的特征集。他们可以从0开始索引,以小于序列的长度结束,他们有一个长度并且他们可以被切分。列表,元组,字符串和其他所有的序列都是这样工作的。

    Python中很多东西都是可迭代的,但不是所有的可迭代的东西都是序列集合,字典,文件和生成器都是可迭代的,但是他们都不是序列。

    序列可以使用下标的索引去遍历,但这种方式只适用与序列。

    二。迭代器驱动for循环

    python的for循环使用迭代器

    迭代器就是可以驱动可迭代对象的东西。你可以从任何可迭代对象中获得迭代器,你也可以使用迭代器来手动对它的迭代进行遍历。

    我们可以使用 Python 的内置 iter 函数来访问这些迭代器,将一个迭代器传递给 iter 函数总会给我们返回一个迭代器,无论我们正在使用哪种类型的迭代器。

     
    转至http://python.jobbole.com/89181/    精华在文末
    
    
    
    1 >>> numbers = {1, 2, 3, 5, 7}
    2 >>> coordinates = (4, 5, 7)
    3 >>> words = "hello there"
    1 >>> iter(numbers)
    2 <set_iterator object at 0x7f2b9271c860>
    3 >>> iter(coordinates)
    4 <tuple_iterator object at 0x7f2b9271ce80>
    5 >>> iter(words)
    6 <str_iterator object at 0x7f2b9271c860>
    
    
    
    
    

    从一个可迭代对象中获得一个迭代器,使用iter函数

    一旦我们有了迭代器,我们可以做的事情就是通过将它传递给内置的 next 函数来获取它的下一项。

    迭代器是有状态的,这意味着一旦你从它们中消耗了一项,它就消失了。

    三。生成器是迭代器
    生成器是迭代器,这意为这你可以在生成器上调用next来获得他们的下一项

    生成器也是可以迭代的,

    Python 中的每一个迭代器都是可迭代的,意味着你可以循环遍历迭代器。

    因为迭代器也是可迭代的,所以你可以使用内置 next 函数从可迭代对象中获得迭代器

    请记住,当我们在可迭代对象上调用 iter 时,它会给我们返回一个迭代器。

    当我们在迭代器上调用 iter 时,它会给我们返回它自己迭代器是可迭代的,所有的迭代器都是它们自己的迭代器。

    让我们回顾一些这些措辞。

    • 一个可迭代对象是你可以迭代的东西
    • 一个迭代对象器是一种实际上遍历可迭代对象的代理

    此外,在 Python 中迭代器也是可迭代的,它们充当它们自己的迭代器。

    所以迭代器是可迭代的,但是它们没有一些可迭代对象拥有的各种特性。

    你可以把迭代器看作是惰性迭代器,它们是一次性使用,这意味着它们只能循环遍历一次

     

    全部的迭代器协议

    让我们从 Python 的角度来定义迭代器是如何工作的。

    可迭代对象可以被传递给 iter 函数,以便为它们获得迭代器。

    迭代器:

    • 可以传递给 next 函数,它将给出下一项,如果没有下一项,那么它将会引发 StopIteration 异常
    • 可以传递给 iter 函数,它会返回一个自身的迭代器

    这些语句反过来也是正确的:

    • 任何可以在不引发 TypeError 异常的情况下传递给 iter 的东西都是可迭代的
    • 任何可以在不引发 TypeError 异常的情况下传递给 next 的东西都是一个迭代器
    • 当传递给 iter 时,任何返回自身的东西都是一个迭代器

    这就是 Python 中的迭代器协议。

    一下内容未能完全明白

    迭代器如何改进你的代码

    四。部分的消耗迭代器

  • 相关阅读:
    使用Skaffold一键将项目发布到Kubernetes
    线性代数回头看——线性方程组
    Python 函数 初学者笔记
    Python 用户输入&while循环 初学者笔记
    Python If&字典 初学者笔记
    Python 变量&列表 初学者笔记
    SQL 常见优化指南
    垃圾回收机制
    MySQL 前缀索引
    MySQL 常用优化
  • 原文地址:https://www.cnblogs.com/qingsheng/p/9191492.html
Copyright © 2011-2022 走看看