zoukankan      html  css  js  c++  java
  • Python基础-迭代器

    可以直接作用于for循环的数据类型有一下几种:
    一类是集合数据类型:如list、tuple、dict、set、str等
    一类是generator,包括生成器和带yield的generator function
    这些可以直接作用与for循环的对象统称为可迭代对象:iterable
    可以使用isinstance()判断一个对象是否是Iterable对象 例如isinstance([],Iterable)
    迭代器:可以作用于for循环、还可以被__next__()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法返回下一个值。可以被__next__()函数调用并不断返回下一个值的对象成为迭代器:Iterator;可以使用isinstance()判断一个对象是否是Iterator对象
    迭代对象(Iterable)转换成迭代器(Iterator):

    可以使用iter()函数将list、dict、str等Iterable转换成Iterator

    注:
    1. 生成器一定是一个迭代器(Iterator对象),但是list、dict、str虽然是Iterable对象但不是Iterator对象
    2. 导入iterable:from collections import Iterable
    3. 导入iterator:from collections import Iterator
    4. python 2.x中的xrange和python 3.x中的range都是一个迭代器
    总结:
    • 凡是可作用与for循环的对象都是Iterable类型
    • 凡是可作用与__next__()函数的对象都是Iterator类型,它们表示一个惰性计算的序列
    • 集合数据类型list等式Iterable但不是Iterator,但是可以通过iter()函数获得一个Iterator对象
  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/chiang97912/p/7233485.html
Copyright © 2011-2022 走看看