zoukankan      html  css  js  c++  java
  • 09.Python基础--迭代器

    迭代器的原理:

    大多数的容器都是可以用for来循环遍历的,这种形式的访问清晰、简洁、方便。迭代器的用法在 Python 中普遍而且统一

    迭代器由类来编写实现

    迭代器的内部工作原理?

    第一.  for语句在容器对象中调用iter()函数

    第二.  该函数返回一个定义了 __next__()方法的迭代器对象,它在容器中逐一访问元素

    第三.  没有后续的元素时, __next__() 抛出一个 Stoplteration 异常通知 for 语句循环结束

    我们自建一个迭代器看看!

    class my_dl(object):
        """Iterator for looping over a sequence backwards."""
        def __init__(self, data):
            self.begin = -1
            self.data = data
            self.index = len(data)
        def __iter__(self):
            return self
        def __next__(self):
            if self.index == 0:
                raise StopIteration
            self.index = self.index -1
            self.begin += 1
            return self.data[self.begin]
    rev = my_dl('yai')
    iter(rev)
    for char in rev: print(char)

    自建迭代器,从末尾开始迭代呢?

    class my_dl(object):
        """Iterator for looping over a sequence backwards."""
        def __init__(self, data):
            self.data = data
            self.index = len(data)
        def __iter__(self):
            return self
        def __next__(self):
            if self.index == 0:
                raise StopIteration
            self.index = self.index -1
            return self.data[self.index]
    rev = my_dl('yai')
    iter(rev)
    for char in rev:
        print(char)
  • 相关阅读:
    memcached在大负载高并发网站上的应用(转)
    NHibernate in Action(序,前言,致谢)
    php 数据类型
    w3wp 备忘录
    EF实例化Context
    爬虫程序判断是否已抓URL
    NHibenate in Action(目录)
    C#中静态构造函数的学习
    webservice 无法在网页中进行测试问题
    汉诺塔问题C#
  • 原文地址:https://www.cnblogs.com/zhouA/p/14501552.html
Copyright © 2011-2022 走看看