分配下一个n次迭代到元组中。

3
有没有更复杂的方式来完成这个任务?
node = next(iterable), next(iterable), next(iterable)
1个回答

4
您可以使用 itertools.islice 来从可迭代对象中选择元素。请注意,迭代器是可迭代的,但并不是每个可迭代对象都是带有 next 方法(在 Python3 中为 __next__)的迭代器。
>>> from itertools import islice
>>> iterator = (x for x in ('a', 'b', 'c', 'd', 'e'))
>>> tuple(islice(iterator, 3))
('a', 'b', 'c')

或者,一个简单的理解:

>>> iterator = (x for x in ('a', 'b', 'c', 'd', 'e'))
>>> tuple(next(iterator) for _ in range(3))
('a', 'b', 'c')

该名称_在解释器中没有特殊的意义(除了交互式会话,在此会话中它存储最后执行语句的结果),但是它被Python程序员注意为一次性变量的名称。

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