Python中迭代器(Iterator)?

2025-05-10 22:31:21
推荐回答(1个)
回答(1):

  1. generator都输出生成一个iterator对象,再由iterator遍历出元素。迭代器就是逐个以“下一个”的形式返回元素的函数。

    比如range(10)是生成器,生成一个显示为"range(0,10)"的迭代器对象,可以进一步由for等遍历输出0,1,2,3..10

    又比如对于遍历字典的iter(d)都是生成器函数

  2. 都在不同的层面,无所谓好坏...生成器产生不同的迭代器,迭代器直接产生元素,适合各自情况的就用...

  3. 有必要区分generator生成器函数(对象)和generator expression生成器表达式

    比如:

    range()生成器函数 

    for i in range(10)生成器表达式

    [i+1 for i in range(10)]对生成器表达式的"列表分解"

另,贴图中由于断章取义,这里的“生成器自身”应该是有特指某个生成器,而不是所有生成器的共性