zoukankan      html  css  js  c++  java
  • Python学习笔记(迭代,列表解析,生成器)

    迭代(iterable):支持每次返回自己所包含一个对象的

    iter()得到迭代器,.next()遍历列表。

    列表解析:根据已有列表高效生成列表的方式。

    生成器(Generator):

    通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。

    所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。

    >>>l = [i*i for i in range(10)]

    >>>print l

    0 ,1, 4 ,9 ,16, 25, 36 ,49 ,64, 81

    >>>g =(i*i for i in range(10))

    >>>print g

    generator object <genexpr> at 0x104feab40>

     next()方法实现单个打印出来

    >>> g.next()
    0
    >>> g.next()
    1
    >>> g.next()
    4
    >>> g.next()
    9
    >>> g.next()
    16
    >>> g.next()
    25
    >>> g.next()
    36
    >>> g.next()
    49
    >>> g.next()
    64
    >>> g.next()
    81
    >>> g.next()

     

  • 相关阅读:
    Merge Two Sorted Lists
    Palindrome Number
    Plus One
    Reverse Integer
    Read N Characters Given Read4
    Given two strings S and T, determine if they are both one edit distance apart
    Longest Palindromic Substring
    Missing Ranges
    Java 不被看好前景堪忧?可能是想多了!
    每天数十亿次请求的应用经验分享,值得参考!
  • 原文地址:https://www.cnblogs.com/seven000/p/7054102.html
Copyright © 2011-2022 走看看