gpt4 book ai didi

python - 范围迭代器是如何在 Python 中实现的?

转载 作者:太空宇宙 更新时间:2023-11-04 10:55:48 25 4
gpt4 key购买 nike

>>> reversed(xrange(100))
<rangeiterator object at 0xb72aab78>
>>> it = reversed(xrange(100)).__iter__()
>>> it
<rangeiterator object at 0xb72aa4d0>
>>> next(it)
99

如何在 Python 中实现这样的功能?更具体地说,我如何制作一个迭代器,它可以被逆转,而无需在它被逆转之前在内存中创建一个列表?

最佳答案

基本上,您实现了 __reversed__ magic method关于收藏。

xrange 的逻辑是这样的:

def __reversed__(self):
return iter(xrange(stop - 1, start - 1, step * -1))

没有诀窍——您需要知道如何生成反向迭代器。 Python 不会为你做这件事。

关于python - 范围迭代器是如何在 Python 中实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com