zoukankan      html  css  js  c++  java
  • Python函数(十二)-迭代器

    字符串,列表,元组,字典,集合,生成器这些能通过for循环来遍历的数据类型都是可迭代对象

    可通过isinstance判断是不是可迭代对象

    >>> from collections import Iterable
    >>> isinstance('Python', Iterable)
    True
    >>> isinstance([1,2,3], Iterable)
    True
    >>> isinstance((1,2,3), Iterable)
    True
    >>> isinstance({'name':'John','age':22}, Iterable)
    True
    >>> isinstance({1,2,3}, Iterable)
    True
    >>> isinstance((i*2 for i in range(10)), Iterable)
    True
    >>> isinstance(100, Iterable)
    False
    

    isinstance也可以判断是不是迭代器

    >>> from collections import Iterator
    >>> isinstance('Python', Iterator)
    False
    >>> isinstance([1,2,3], Iterator)
    False
    >>> isinstance((1,2,3), Iterator)
    False
    >>> isinstance({'name':'John','age':22}, Iterator)
    False
    >>> isinstance({1,2,3}, Iterator)
    False
    >>> isinstance((i*2 for i in range(10)), Iterator)
    True
    >>> isinstance(100, Iterator)
    False
    

    可见可迭代对象不一定是迭代器,但迭代器是可迭代对象

    如果要把可迭代对象变为迭代器,可以使用iter()方法

    >>> from collections import Iterator
    >>> isinstance(iter('Python'), Iterator)
    True
    >>> isinstance(iter([1,2,3]), Iterator)
    True
    >>> isinstance(iter((1,2,3)), Iterator)
    True
    >>> isinstance(iter({'name':'John','age':22}), Iterator)
    True
    >>> isinstance(iter({1,2,3}), Iterator)
    True
    

    迭代器可以用next()方法取数据,跟生成器一样

  • 相关阅读:
    google jQuery 1.4.2引用文件,jQuery 1.4.2 引用地址,jQuery引用地址
    html input checkbox js,jQuery
    HTML <fieldset> 标签
    ul 水平,行内块放置,取消点点
    C# Xml 操作
    DropDownList 下拉菜单控件
    jQuery,js : missing)after argument list
    PHP会员权限设计
    主流ETL工具选型
    windows XP下MySQL Cluster集群安装配置 .
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8410742.html
Copyright © 2011-2022 走看看