python 可迭代对象、迭代器和生成器的关系
2021-10-07 23:29
197 查看
Iterable
: 可迭代对象Iterator
: 迭代器Generator
: 生成器
Iterable: 可迭代对象>
Iterator: 迭代器>
Generator: 生成器
可以用下面的代码验证。关于具体的区别点击👉https://www.liaoxuefeng.com/wiki/1016959663602400/1017323698112640
from typing import Generator, Iterable, Iterator def createAGenerator(a=100): """这是一个生成器函数,用于创建生成器 Args: a (int): 一个值,用于影响生成器的容量 Returns: [list]: [while循环结束后,所有i的列表] Yields: [int]: [在while循环中的i] """ i = 0 arg = [] while i <= a: arg.append(i) yield i i = 1.5 * (i + 1) return arg def testCreateAGen(arg=None): """检测生成器 Args: arg ([generator], optional): 一个生成器. Defaults to None. """ while True: try: i = next(arg) print(i) except StopIteration as e: print(e.value) break def testIter(itere=None): """检测不同的参数是否为可迭代对象""" print( itere, "\tIterable: ", isinstance(itere, Iterable), ",Iterator: ", isinstance(itere, Iterator), ",generator: ", isinstance(itere, Generator), ) print("----------------------------") if __name__ == "__main__": # 元组和list的属性(可迭代对象) testIter((12, 32, 34)) testIter([12, 324, 342, 234]) testIter({"name": "suyuesheng", "sex": "man"}) # 迭代器的属性 testIter(iter([13, 23211, 14])) # 生成器的属性 testIter((x for x in range(100))) print(type((x for x in range(100)))) print(type(iter([12, 21, 312]))) testIter(createAGenerator()) # 檢測生成器 # print("----------------------------") testCreateAGen(createAGenerator())
相关文章推荐
- 一文说清Python可迭代对象,迭代器,生成器的关系
- 一张图明白python 生成器/迭代器/可迭代对象 之间的关系
- 完全理解 Python 迭代对象、迭代器、生成器
- 流畅的python 14章可迭代的对象、迭代器 和生成器
- Python3.可迭代对象_迭代器_生成器
- python迭代,可迭代对象,生成器,迭代器--
- 理解一下python中的可迭代对象,迭代器和生成器和他们的区别
- 猴子都能看懂的迭代器、生成器、可迭代对象解析(python)
- python中生成器和迭代器以及可迭代对象的区别
- Python迭代对象、迭代器、生成器
- 完全理解Python迭代对象、迭代器、生成器
- 完全理解 Python 迭代对象、迭代器、生成器
- python 可迭代对象、迭代器与生成器小结
- Python 中 生成器、迭代器、可迭代对象 的概念
- Python中的 set集合 、类型转换 、列表生成式 、迭代器与可迭代对象 、生成器 、函数
- Python迭代器,可迭代对象,生成器
- python生成器,可迭代对象,迭代器区别和联系
- Python 可迭代的对象、迭代器和生成器
- 一文读懂Python可迭代对象、迭代器和生成器
- 完全理解Python迭代对象、迭代器、生成器