如何从一个迭代对象创建三个迭代组?为了创建一对迭代函数,我可以做类似的事情 从itertools import tee
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
答案 0 :(得分:1)
您可以扩展已经进行的两个一组的操作,但是第三项还有一个变量:
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
请注意,您问题中的示例代码不正确,因为它缺少从zip
返回的值中对func
的调用。
答案 1 :(得分:0)
使用zip()
:
l = [1,2,3,4,5]
for a, b, c in zip(l, l[1:], l[2:]):
print(a, b, c)
# 1 2 3
# 2 3 4
# 3 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