有没有更复杂的方式来完成这个任务?
node = next(iterable), next(iterable), next(iterable)
node = next(iterable), next(iterable), next(iterable)
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程序员注意为一次性变量的名称。