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)
  • 相关阅读:
    socat + kata + cgroup
    2018-8-10-卷积神经网络全面解析
    2019-8-31-PowerShell-通过-WMI-获取系统服务
    2019-8-31-PowerShell-通过-WMI-获取系统服务
    2018-2-13-不使用数据结构反转栈
    统计难题
    Keywords Search
    [JSOI2008]最大数
    Android(java)学习笔记1:多线程的引入
    欢迎使用CSDN-markdown编辑器
  • 原文地址:https://www.cnblogs.com/zhouA/p/14501552.html
Copyright © 2011-2022 走看看