• 函数进阶_迭代器


    #迭代器

    l = [1,2,3]
    #索引
    # 循环 for
    # for i in l:
    # i
    # print(i)

    # 可迭代的
    #list
    #dic
    #str
    #tuple
    #f = open()
    #set
    #range()
    #enumorate

    #迭代器 --------for循环原理
    # dir方法

    # print(dir([])) #告诉我列表拥有的方法
    # 双下方法---->__add__
    # print([1].__add__([2]))
    # print([1]+[2])

    # print((1).__add__(2)) #1+2---->(1).__add__(2)

    # print(dir(str))

    # ret = set(dir([]))&set(dir({}))&set(dir(str))&set(dir(tuple))&set(dir(range(10)))
    #只要是for循环的数据类型,就一定拥有__iter__方法
    # print([].__iter__())
    # print(ret)
    # print(dir([].__iter__()))
    # ret = set(dir([].__iter__()))-set(dir([]))
    # print(ret)

    # l = [1,2,3,4]
    #
    # iteror = l.__iter__()
    #
    # print(iteror.__next__())
    # print(iteror.__next__())
    # print(iteror.__next__())
    # print(iteror.__next__())
    # print(iteror.__next__())
    # iterable 可迭代的, ---> __iter__#只要含有__iter__是可迭代的
    #[].__iter__() 迭代器--->__next__ #只要含有__next__就可以一个一个的取值

    #要含有__iter__方法都是可以可迭代的------>可迭代协议
    #迭代器协议,必须含有以上两个方法,才叫迭代器协议

    # l = [1,2,3,4]
    #
    # for i in l.__iter__():
    # print(i)

    # 迭代器协议和可迭代协议
    # 可迭代协议和迭代器协议
    # 可以被for循环都是可以迭代的
    # 可迭代的内部都有__iter__方法
    #只要是迭代器,一定可迭代,可迭代不一定是迭代器

    # for 循环其实就是在使用迭代器
    # iterator
    #可迭代对象
    # 直接给你内存地址

    # print([].__iter__())
    # # print(range(0,10))
    # # print()

    # for
    # 只有是可迭代对象的时候,才能用for循环
    # 当我们遇到一个新的变量,不确定能不能for循环的时候,就判断是否可迭代

    # for i in l:
    # pass
    # iterator ----> 1.__iter__()
    # iterator.__next__()
    # 迭代器的好处:
    # 从容器中可以一个一个的取出,会把所有的值都取到
    # 他可以节省内存空间
    #迭代器并不会在内存中占用一大块内存
    #而是随着循环,每次生成一个
    #每次next,每次给我一个

    #range

    # l = [1,2,3,4,5,6]
    #
    # iterator = l.__iter__()
    # while True:
    # ret = iterator.__next__()
    # print(ret)

    # print(range(100000))
    # print(list(range(1000000)))

    #生成一个200万个哇哈哈
    # def func():
    # for i in range(20000000):
    # "wahaha%s"%i

    #生成器
    # 生成器函数------------本质上是我们自己写的函数
    # 生成器表达式

  • 相关阅读:
    JS设计模式的坑
    nth-child()和nth-of-type()的区别,以及如何在nth中添加变量和表达式
    for循环中,使用闭包和不使用闭包的区别以及原因
    JS闭包的基础知识,闭包的本质,闭包的作用,闭包的间谍属性和闭包的遗憾
    前端和后端数据交互的基本知识和常见方式
    dedecms手机PC同步更新插件的bug修复和前后端调试的经验
    065 女神颜值打分系统
    029 令牌桶算法限流
    04-01 集成学习基础
    028 【博弈论】关于三姬分金(五海盗分赃)的博弈论问题分析
  • 原文地址:https://www.cnblogs.com/jly1/p/9595497.html
Copyright © 2020-2023  润新知