• Python迭代器


    一、文件迭代器

    readline()每次读取文件的一行,每次调用readline方法会自动到下一行,到文件末尾时,会返回空字符串。

    _next_()方法同readline()一样,只是到最后一行会引发stopiteration。

    逐行读取文本的的最佳方式是用for循环每轮自动调用next,for line in open(文件名)。

    readlines()一次将文件读取到内存,如果文件过大,会导致计算机内存空间不够用,效果差。

    手动迭代:iter和next

    f=open(文件名)

    f._next_() 与next(f)的效果一样,每次调用读取一行

    从技术角度讲,for循环开始时,会通过它传给iter内置函数,以便从可迭代对象中获取一个迭代器,返回的对象含有需要的next方法。

    >>> L=[1,2,3]
    >>> I=iter(L)   #获取一个迭代对象

    >>> next(I)
    1
    >>> next(I)
    2
    >>> next(L)
    Traceback (most recent call last):
    File "<pyshell#9>", line 1, in <module>
    next(L)
    TypeError: 'list' object is not an iterator

    最初的一步对于文件对象来说是不必要的,因为文件对象有自己的迭代器,即文件对象有自己的—_next_()方法。

    >>>f=open(文件名) 

    >>>iter(f) is f

    True

    >>>L=[1,2,3]

    >>>iter(L) is L

    False

  • 相关阅读:
    小数的进制转换
    水题 O
    水题 J
    水题T,二进制转16进制
    水题B
    水题C
    HDU 2042
    HDU 2041
    Index For SQL Server
    Learning Note For Angular
  • 原文地址:https://www.cnblogs.com/moady/p/5682577.html
Copyright © 2020-2023  润新知