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

    一、迭代器(Iterator)

    迭代器是一个可以记住遍历位置的对象。

    它从集合的第一个元素开始,直到集合所有元素被访问完结束。

    字符串、列表、字典、元组、集合都是可迭代的。(但不一定是迭代器)

    迭代器有两个最基本的方法:

    iter() :用于创建迭代对象(创建后方可进行for...in ... 迭代)

    next() :用于访问迭代器中的下一个元素

    next() 是单向的,一次只能获取一个元素,获取到最后的元素后停止,只能向前遍历,不能后退

    迭代器在处理大量数据,甚至是无限数据时具有加载数据快、占用内存小的优势,在Python中广泛应用 。

    from collections import Iterable  #可迭代对象
    from collections import Iterator #迭代器


    # -----------------------------------------
    # 迭代器(Iterator)
    # -----------------------------------------
    # 用for循环遍历集合元素
    cities = ['北京', '上海', '广州', '深圳']
    for city in cities:
    print(city)
    print()

    t = (100, 200, 300)
    s = {'a', 'b', 'c'}
    d = {'a': 100, 'b': 200, 'c': 300}
    c = '南京'

    # 判断是否为可迭代对象
    print(isinstance(cities, Iterable))
    print(isinstance(t, Iterable))
    print(isinstance(s, Iterable))
    print(isinstance(d, Iterable))
    print(isinstance(c, Iterable))
    print()

    # 判断是否为迭代器(是可迭代对象非迭代器)
    print(isinstance(cities, Iterator))
    print(isinstance(t, Iterator))
    print(isinstance(s, Iterator))
    print(isinstance(d, Iterator))
    print(isinstance(c, Iterator))

    # 使用迭代器访问列表
    cities = ['北京', '上海', '广州', '深圳']
    i = iter(cities) # 创建迭代器对象(才可进行遍历)
    # 使用常规的for语句进行遍历
    for city in i:
    print(city)
    print()

    cities = ['北京', '上海', '广州', '深圳']
    i = iter(cities)
    # 使用next()函数进行遍历,等价于for...in循环
    while True:
    try:
    print(next(i))
    except StopIteration:
    print("停止迭代")
    break
  • 相关阅读:
    二分查找
    Uva11464 Even Parity
    Uva10881 Piotr's Ants
    POJ3154 Graveyard
    [NOIP2015] 提高组 洛谷P2680 运输计划
    [NOIP2015] 提高组 洛谷P2679 子串
    [NOIP2015] 提高组 洛谷P2678 跳石头
    [NOIP2015] 提高组 洛谷P2668 斗地主
    [NOIP2015] 提高组 洛谷P2661 信息传递
    [NOIP2015] 提高组 洛谷P2615 神奇的幻方
  • 原文地址:https://www.cnblogs.com/Teachertao/p/11229186.html
Copyright © 2011-2022 走看看