zoukankan      html  css  js  c++  java
  • Python 迭代器

    如何遍历一个列表

    1. for...in
    for number in list(range(10)):
        print(number) # 0 ~ 9
    
    
    1. 迭代器
    it = iter(list(range(10)))
    while True:  
        try:
            print(next(it))  # 0 ~ 9
        except StopIteration:  
            break  
    
    

    可迭代与迭代器

    1. 只要数据对象能够实现 __iter____getitem__的 方法就是可迭代对象;可迭代对象支持每次返回自己所包含的一个成员对象;可迭代对象都可以用 for...in 来遍历;

    2. listtuplestringdictsetfile 都是可迭代对象;自定义类只要其内部实现 __iter____getitem__的方法,也是可迭代对象;

    1. 当对象调用 __iter____getitem__ 方法就在内存中创建了一个能遍历此对象的每一个元素的迭代器;调用迭代器的next()方法可以遍历其每一个元素;

    2. 迭代器提供了一种访问容器中各个元素的统一接口,即next()方法, 使用next()方法可以依次访问容器中的元素;迭代器是不可逆的,当依次遍历完元素后,会返回Stopiteration

    3. 自定义可迭代对象要想能够生成迭代器,不仅要有实现__iter____getitem__的方法,同时还要定义__next__()的方法,用于使迭代器指向下一个元素;

    class Fibs:
        def __init__(self):
            self.a = 0
            self.b = 1
    
        def __next__(self):
            self.a, self.b = self.b, self.a + self.b
            return self.a
        def __iter__(self):
            return self
    
        
    fib = Fibs()
    for f in fib:
        if f > 100:
            print(f) # 144
            break
  • 相关阅读:
    JavaScript面试题
    HTML&&css面试题
    nodejs面试题
    linux上安装apache
    linux上安装mysql
    linux基础命令学习(三)Vim使用
    linux基础命令学习(一)
    spring学习(六)注解方式实现AOP
    spring学习(五)详细介绍AOP
    spring学习(一)spring简介
  • 原文地址:https://www.cnblogs.com/gzyxy/p/11814335.html
Copyright © 2011-2022 走看看