由reversed函数返回的“迭代器对象”是什么?

3

我正在尝试在列表上使用 reversed 函数,但是返回值让我有些困惑。

s=[0,1,2,3]
print(reversed(s))

这将返回此行:

<list_reverseiterator object at 0x000001488B6559A0>

我知道reversed()函数返回一个迭代器对象。有人可以更详细地解释一下“迭代器对象”吗?


2个回答

4

迭代器对象实际上就是生成器。

根据文档说明:

生成器是迭代器,但你只能对它们进行一次迭代。因为它们不会将所有的值存储在内存中,而是根据需要即时生成这些值。你可以通过使用“for”循环或将它们传递给任何迭代函数或构造函数来迭代它们。大多数情况下,生成器被实现为函数。然而,它们不返回值,而是产出它们。

解决这个问题的方法是:

print(list(reversed(s)))

输出:

[3, 2, 1, 0]

1

您知道通过使用这个反转函数,您将会按照相反的顺序迭代列表。请执行此操作。

s=[0,1,2,3]
reversed_s = reversed(s)
for item in reversed_s:
    print(item)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接