zoukankan      html  css  js  c++  java
  • Python:笔记(4)——高级特性

    Python:笔记(4)——高级特性

    切片

      取一个list或tuple的部分元素是非常常见的操作。Python提供了切片操作符,来完成部分元素的选取

      

      除了上例简单的下标范围取元素外,Python还支持一些其他的骚操作,如下:

      

    迭代

      如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。

      

    列表生成式

      列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式

      

      同样,我们也可以自定义每个元素的处理规则

      

    列表生成器

      通过列表生成式,我们可以直接创建一个列表,但是收到内存限制,列表容量肯定是有限的,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator

      

      从示例中我们可以看出,在写出规则的后,要产生生成器,只需要将[换成(即可

      

      如果要一个一个打印出来,可以通过next()函数获得generator的下一个返回值

     说明:generator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出StopIteration的错误。

      或者我们也可以直接使用迭代算法

      

    说明:所以,我们创建了一个generator后,基本上永远不会调用next(),而是通过for循环来迭代它,并且不需要关心StopIteration的错误。 

    迭代器

      Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。

      

  • 相关阅读:
    7月的尾巴,你是XXX
    戏说Android view 工作流程《下》
    “燕子”
    Android开机动画bootanimation.zip
    戏说Android view 工作流程《上》
    ViewController里已连接的IBOutlet为什么会是nil
    My first App "Encrypt Wheel" is Ready to Download!
    iOS开发中角色Role所产生的悲剧(未完)
    UIScrollView实现不全屏分页的小技巧
    Apple misunderstood my app,now my app status changed to “In Review”
  • 原文地址:https://www.cnblogs.com/MrSaver/p/10131794.html
Copyright © 2011-2022 走看看