初始坐标为: (a,b)=(2,3)
(c,d) generate by (a+2,b+2) i.e. (4,5)
(e,f) must be generate by (a+2,b) i.e (4,3)
对于下一个迭代的a and b
将是上一步的c and d
:即(a,b) =(4,5)
然后像这样。
您可以使用发电机(几乎是从描述中翻译的(:
def pattern(a, b):
yield (a, b)
while True:
c, d = (a+2, b+2)
e, f = (a+2, b)
yield (c, d)
yield (e, f)
a, b = (c, d)
例如:
>>> def pattern(a, b):
... yield (a, b)
... while True:
... c, d = (a+2, b+2)
... e, f = (a+2, b)
... yield (c, d)
... yield (e, f)
... a, b = (c, d)
...
>>> g = pattern(2, 3)
>>> [next(g) for _ in range(10)]
[(2, 3), (4, 5), (4, 3), (6, 7), (6, 5), (8, 9), (8, 7), (10, 11), (10, 9), (12, 13)]