为什么next(iter(x))不前进到下一个iterable?

2024-04-23 10:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,伙计们,我刚刚开始学习如何编写python。当我把L赋给iter(x),然后下一步(L)迭代x列表时,为什么迭代代码会起作用,如下所示:

x=[1,2,3,4,5]
>>> L=iter(x)
>>> next(L)
1
>>> next(L)
2
>>> next(L)
3
>>> next(L)
4
>>> next(L)
5
>>> next(L)

但当我手动编写next(iter(x))遍历x列表时,它不起作用:

^{pr2}$

如果我使用的任何技术术语不准确,我深表歉意,但我希望你们能理解我的问题,并在这个问题上给我一些指导。谢谢您!在


Tags: 代码列表手动技术next术语指导iter
2条回答
next(iter(x))

相当于

^{pr2}$

因此,在第二种情况下,每次都要重复这两条指令,在这两条指令中,首先从iterable创建一个iterator,然后应用next()函数来获取第一个元素。
所以你从不消耗它,而是每次都重新创建它。在

在Python中,迭代器是在创建之后被用完的对象。在第一个例子中,您创建了一个迭代器并提取了它的元素,直到它耗尽为止。在第二个例子中,每次都创建一个新的迭代器,提取它的第一个元素,然后丢弃它(通过垃圾收集器)。在

相关问题 更多 >