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

    #int
    #str
    #tuple
    #list
    #dict
    #bool
    #set
    # print(dir(int))#告诉我所拥有的方法
    # print([1].__add__([2]))
    # print(dir(""))
    # print(dir(()))
    # print(dir([]))
    # print(dir(bool))
    # print(dir(range(10)))#只要可以for循环就可以迭代
    # print(dir([].__iter__()))#一个列表执行了__iter__返回值就是一个迭代器
    # print(set(dir([].__iter__()))-set(dir([])))
    # # print([1,2,3].__iter__().__length_hint__())#元素个数
    # list=[1,2,3]
    # Iter=list.__iter__()
    # print(Iter.__iter__().__next__())#迭代器--》通过__next__在迭代器中一个一个取值
    # print(Iter.__iter__().__next__())#只要是含有—__iter__方法的都是可迭代的
    # #只要含有__iter__就是可迭代的-------可迭代协议
    # #可迭代协议:只要含有__next__和_iter__方法的就是迭代器
    # print("__iter__"in dir([]).__iter__())
    # # print("__next__"in dir([].__iter__())
    # from collections import Iterator
    # from collections import Iterable
    # print(isinstance([],Iterator))
    # print(isinstance([],Iterable))
    # #如果是迭代器一定可迭代
    #可迭代的不一定是迭代器
    #可迭代的__iter__方法就可以得到一个迭代器
    #for驯化怒就是在用迭代器
    #只有是可迭代对象的时候才能使用for循环
    # #当我们遇到一个不确定他能不能使用for循环,我们就可以判断他有没有迭代器
    # L=[]
    # for i in L:
    # pass
    # #Itertor=l.__iter__()
    #Itertor.__next__()
    #可以一个一个取值把每个值都取到
    #节省内存空间
    #迭代器不会在内存中占用一大块内存,而是需要一个给一个,每次next给一个
    l=[1,2,3,4]
    Iterator=l.__iter__()
    while 1:
    print(Iterator.__next__())
    
    
  • 相关阅读:
    C# Server.Transfer传值方式
    asp.net验证码生成
    pop协议指令
    Url Rewriting后的问题
    c# 一个通过oledb读取excel,csv的类
    jquery选择器全解
    覆盖与重载(override/overload) [C#]
    ASP.NET内置对象
    web开发敏捷之道应用rails进行敏捷web开发【读书笔记2】
    win7自动壁纸切换小工具AutoDesk一:初始化托盘
  • 原文地址:https://www.cnblogs.com/648071634com/p/11656375.html
Copyright © 2011-2022 走看看