Python 3:在for循环中找到previous / next元素

时间:2013-09-27 10:03:33

标签: for-loop python-3.x

此问题已在Python 2.x中得到解答。我无法在Python 3中使用它。

我将izip更改为zip,因为我了解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>

此代码有什么问题?

1 个答案:

答案 0 :(得分:1)

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