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
  • 相关阅读:
    系统相关的信息模块: import sys
    Mysql 解决emoji表情处理问题
    Servlet 个人理解
    Java BufferImage 获取像素矩阵 或 数组
    SVN 出现 R6034 错误 Python导致异常
    Mycat 入门
    Mycat 入门
    Nginx 架构
    Nginx 架构 性能优化
    Nginx 架构 性能优化
  • 原文地址:https://www.cnblogs.com/yaohong/p/7484925.html
Copyright © 2011-2022 走看看