从python中的迭代对象创建一个包含一组树的迭代对象

从python中的迭代对象创建一个包含一组树的迭代对象,python,python-3.x,Python,Python 3.x,如何从一个迭代对象创建三人迭代组?为了创建一对迭代函数,我可以做如下操作 来自itertools进口三通 def func(iterate): i, j = tee(iterate) next(j, None) return zip(i, j) l = [1,2,3,4,5] for a, b in func(l): print(a, b) > 1, 2 > 2, 3 > 3, 4 > 4, 5 使用: 您还可以使用此方法创建两个组:

如何从一个迭代对象创建三人迭代组?为了创建一对迭代函数,我可以做如下操作 来自itertools进口三通

def func(iterate):
    i, j = tee(iterate)
    next(j, None)
    return zip(i, j)

l = [1,2,3,4,5]
for a, b in func(l):
    print(a, b)
> 1, 2
> 2, 3
> 3, 4
> 4, 5
使用:

您还可以使用此方法创建两个组:

l = [1,2,3,4,5]

for a, b in zip(l, l[1:]):
    print(a, b)

# 1 2
# 2 3
# 3 4
# 4 5

您可以对两人一组所做的工作进行扩展,但第三项需要增加一个变量:

def func(iterate):
    i, j, k = tee(iterate, 3)
    next(j, None)
    next(k, None)
    next(k, None)
    return zip(i, j, k)

l = [1,2,3,4,5]
for a, b, c in func(l):
    print(a, b, c)
这将产生:

1 2 3
2 3 4
3 4 5
请注意,问题中的示例代码不正确,因为它在
func
的返回值中缺少对
zip
的调用

1 2 3
2 3 4
3 4 5