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

    # 迭代器:重复做某事情
    # l=['a','b','c','d','e']
    #
    # # for要有下标才能使用下面的语句,查文件,字典都用不了
    # for i in l:
    #     print(i)
    #
    # i=0
    # while i in range(len(l)):
    #     print(l[i])
    #     i+=1

    # 如果没下标,就要用迭代器
    # d={"a":1,"b":2,"c":3}
    # # 只要能选到iter方法,就是能迭代
    # i=d.__iter__()
    # print(i.__next__())
    # print(i.__next__())
    # print(i.__next__())

    # d={"a":1,"b":2,"c":3}
    # i=d.__iter__()
    # # 也可以i=iter(d)
    # while True:
    #     try:
    #         print(next(i))
    #     except StopIteration:
    #         break

    # l=['a','b','c','d','e']
    # i=l.__iter__()
    #
    # while True:
    #     try:
    #         print(i.__next__())
    #     except StopIteration:
    #         break
    #
    # # for也可以迭代,k in l其实是l.__iter__()
    # l=['a','b','c','d','e']
    # for k in l:
    #     print(k)
    #

    # s=('a','b','c','d')
    # for k in s:
    #     print(k)

    # s={"a":1,"b":2,"c":3}
    # for k in s:
    #     print(k)
    #     print(s[k])

    # with open('b.txt','r') as f:
    #     for line in f:
    #         print(line)
    #
    # with open('b.txt',"r") as f:
    #     i=f.__iter__()
    #     while True:
    #         try:
    #             print(next(i))
    #         except StopIteration:
    #             break

    # 为什么要用迭代器
    # 优点:
    # 1、迭代器提供了一种不依赖索引的取值方式,可以用到集合,字典等
    # 2、迭代器与列表比较,迭代器是惰性计算,更节省内存

    # 缺点:
    # 1、列表可以直接取第3个,而迭代器要把1、2、3个都取了才能取第3个
    # 2、不知道列表的长度

    l=[1,2,3,4]
    print(len(l))
    i=iter(l)
    print(next(i))
    print(next(i))
    print(next(i))
    print(next(i))

    for x in i:
        print(x)

    # 再执行就没值了,因为迭代器都是next地取值
    for x in i:
        print(x)

    # 查看可迭代的对象
    s="hello"
    l=[1,2,33]
    t=(1,2,3)
    d={"a":1}
    se1t={1,2,3,4,5}
    f=open('a.txt')

    # 看看是否迭代器
    from collections import Iterator
    print(isinstance(s,Iterator))
  • 相关阅读:
    写在vue总结之前(一)
    前端应该掌握的web基础和网络知识
    sass之为什么要使用预处理器
    ThinkPHP简单的验证码实现
    ajax接收php返回得到一堆html代码
    Bootstrap 4,“未捕获错误:Bootstrap工具提示需要Tether(http://github.hubspot.com/tether/)”
    百度AI开放平台- API实战调用
    最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)
    C#避免踩坑之如何添加paint事件
    php插入mysql中文数据出现乱码
  • 原文地址:https://www.cnblogs.com/jensenxie/p/8972952.html
Copyright © 2011-2022 走看看