我正在尝试以一种更 Python 的方式来做这个非常简单的事情,它只涉及一个迭代器:
>>>for i in xrange(10):
... for j in xrange(i+1,10):
... print i,j
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
2 3
2 4
2 5
2 6
2 7
2 8
2 9
3 4
3 5
3 6
3 7
3 8
3 9
4 5
4 6
4 7
4 8
4 9
5 6
5 7
5 8
5 9
6 7
6 8
6 9
7 8
7 9
8 9
我想做的是这样的,它只涉及一个迭代器:
>>>from itertools import tee
>>>iter1=iter(xrange(10))
>>>for i in iter1:
... iter2=tee(iter1,1)[0]
... for j in iter2:
... print i,j
这显然不起作用,产生:
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
自从我一直迭代到 iter2 之后,我也一直迭代到了 iter1。
有什么办法可以做到这一点?我正在使用 Python-2.7
编辑:我想做的是与任何可迭代的事情相同,而不仅仅是数字。