0

这个问题在 Python 2.x 之前已经回答过了。我无法让它在 Python 3 中工作。

我改为izipzip因为我知道 izip 已从 Python 3 中删除。

from itertools import tee, islice, chain

def previous_and_next(some_iterable):
    prevs, items, nexts = tee(some_iterable, 3)
    prevs = chain([None], prevs)
    nexts = chain(islice(nexts, 1, None), [None])
    print(zip(prevs, items, nexts))

a = list(range(1,10))

previous_and_next(a)

运行这个给了我<zip object at 0x7f338e4ea638>

这段代码有什么问题?

4

1 回答 1

1

<zip object at 0x7f338e4ea638>是一个迭代器。要获得迭代器中的项目,必须将其传递给tuple()or list()。具体来说,替换print(zip(prevs, items, nexts))print(tuple(zip(prevs, items, nexts)))print(list(zip(prevs, items, nexts)))

于 2013-09-27T10:11:35.567 回答