zoukankan      html  css  js  c++  java
  • python高级特性-迭代器

    凡是可作用于for循环的对象都是Iterable类型;

    凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;

    集合数据类型如listdictstr等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

    可直接作用于for循环的有两类:

    一类是集合数据类型,如listtupledictsetstr等;

    一类是generator,包括生成器和带yield的generator function。

    1.使用isinstance()判断一个对象是否是Iterable对象

    >>> from collections import Iterable
    >>> isinstance([],Iterable)
    True
    >>> isinstance({},Iterable)
    True
    >>> isinstance('abc',Iterable)
    True
    >>> isinstance(100,Iterable)
    False

    2.使用isinstance()判断一个对象是否是Iterator(迭代器)

    >>> from collections import Iterator
    >>> isinstance((x for x in range(10)), Iterator)
    True
    >>> isinstance([],Iterator)
    False
    >>> isinstance('abc',Iterator)
    False
    >>> isinstance({},Iterator)
    False

    3.Interable转化为Interator

    生成器虽然是迭代器,但list,dic,str只是Interable不是Interator,,但可以使用Iter()转化

    >>> isinstance(iter([]),Iterator)
    True
    >>> isinstance(iter('abc'),Iterator)
    True
    >>> isinstance(iter({}),Iterator)
    
    True
  • 相关阅读:
    day74作业
    day072作业
    Serializer类
    day067作业
    day066作业
    day065作业
    django
    jQuery
    JavaScript
    mediaplayer state
  • 原文地址:https://www.cnblogs.com/yaohong/p/7484925.html
Copyright © 2011-2022 走看看