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

    一、可迭代对象:可以直接作用于for循环的对象称为可迭代对象:Iterable

    比如:list、tuple、dict、set、str、生成器

    可以使用isinstance()来判断:

    >>> from collections import Iterable
    >>> isinstance([],Iterable)
    True
    >>> isinstance((),Iterable)
    True
    >>> isinstance('abc',Iterable)
    True
    >>> isinstance(x for x in range(10),Iterable)
    SyntaxError: Generator expression must be parenthesized if not sole argument
    >>> isinstance((x for x in range(10)),Iterable)
    True
    >>> isinstance([x for x in range(10),Iterable)
           
    SyntaxError: invalid syntax
    >>> isinstance([x for x in range(10)],Iterable)
    True
    >>> isinstance(100,Iterable)
    False
    >>> isinstance('',Iterable)
    True
    >>> isinstance(0.2,Iterable)
    False
    >>> isinstance({},Iterable)
    True
    >>> 

    二、迭代器:不但可以作用于for循环,还可以通过next()函数调用不断返回下一个值的对象称为迭代器:Iterator。

    也可以通过isinstance()判断一个对象是否是Iterator对象,可以看到list、dict、tuple、str对象虽然是Iterable,但是不是Iterator:

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

    可以通过iter()函数将可迭代对象转换为迭代器,参数必须是可迭代的对象,否则会报错:

    >>> isinstance(iter([]),Iterator)
    True
    >>> isinstance(iter({}),Iterator)
    True
    >>> isinstance(iter(()),Iterator)
    True
    >>> isinstance(iter('abc'),Iterator)
    True
    >>> isinstance(iter(123),Iterator)
    Traceback (most recent call last):
      File "<pyshell#38>", line 1, in <module>
        isinstance(iter(123),Iterator)
    TypeError: 'int' object is not iterable
    >>> 

           

  • 相关阅读:
    C#:新邮件监听及搜索
    PHPexcel导入数据的时候出现object解决方法
    selectpage选择订单的时候,订单数量和金额会动态改变
    三、变量的简述
    TP框架where条件和whereOr条件同时使用
    一.OS运行机制
    二.进制简述
    1.go语言入门
    C# Redis学习系列二:Redis基本设置
    C# Redis学习系列一:Redis的认识、下载、安装、使用
  • 原文地址:https://www.cnblogs.com/OnOwnRoad/p/5365747.html
Copyright © 2011-2022 走看看