Генерация серии чисел (координат) на основе отдельных значений - PullRequest
1 голос
/ 16 мая 2019

Я хочу генерировать числа в следующем порядке: Начальная координата: (a,b)=(2,3)

(c,d) must be 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) и идет так.

. Кто-нибудь может дать мне циклическую логику для генерации такого рода шаблонов координат / чисел.

1 Ответ

2 голосов
/ 16 мая 2019

Вы можете использовать генератор (в значительной степени перевод с вашего описания):

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)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...