迭代器

作者: 匿隱 | 来源:发表于2019-02-08 13:00 被阅读0次

    1.什么是迭代器(iter)

    是python提供的容器型数据类型。
    获取迭代器中的元素的时候只能从前往后一个一个的取,而且取了之后这个元素在迭代器中就不存在了

    2.迭代器的字面量

    迭代器没有指定格式的字面量。迭代器作为容器,里面的元素只能通过其他序列转换,或者通过生成器生成
    迭代器中的元素可以是任何类型的数据

    将字符串转换成迭代器,迭代器中的元素就是字符串中的每个字符
    iter1 = iter('hello')
    print(iter1)
    
    将列表转换成迭代器,迭代器中的元素就是列表中的每个元素
    iter2 = iter([100, 'shj', (10, 20), [1, 2], True, {'name': '小花'}, lambda x: x])
    print(iter2)
    

    3.获取元素

    (迭代器中的元素只支持查,不支持增删改)
    迭代器是通过next函数获取单个元素,for-in遍历一个一个获取每一个元素。
    不管哪种方式获取,已经获取过的元素,在迭代器中就不存在

    iter3 = iter('hello')
    
    # 1.next
    

    next(迭代器) -> 获取迭代器中最新的数据(最顶层)

    print(iter3)
    print(next(iter3))
    print(next(iter3))
    print(next(iter3))
    print(next(iter3))
    print(next(iter3))
    # print(next(iter3))   # 报 'StopIteration'异常, 因为在这儿迭代器中的数据已经取完了
    print(iter3)
    
    iter3 = iter('123456')
    print(next(iter3))
    
    通过for-in取迭代器中的元素和next效果一样,元素还是会从迭代器中取出
    for x in iter3:
        print('x:', x)
    print(next(iter3))
    

    练习: 看打印结果

    iter4 = iter([10, True, 'abc', (1, 2)])
    
    index = 0
    for x in iter4:
        index += 1
        if index == 2:
            break
    
    index = 0
    x = 10   iter4 = True, 'abc', (1, 2)   index = 1   if 1 == 2
    x = True    iter4 = 'abc', (1, 2)   index = 2    if 2==2
    
    
    item = next(iter4)
    print(item)
    print(next(iter4))
    

    相关文章

      网友评论

          本文标题:迭代器

          本文链接:https://www.haomeiwen.com/subject/mvxzdqtx.html