Получение n-й итерации вложенного цикла? - PullRequest
0 голосов
/ 23 января 2019

У меня есть этот фрагмент кода, который «генерирует» центры фигур в моем графическом интерфейсе ... Проблема в том, что это слишком медленно, потому что решение итерирует слишком много. Поэтому мне интересно, как реализовать генератор, чтобы получить точное значение, которое мне нужно.

from pprint import pprint


def center(i, j):
    s = 50
    for k, v1 in enumerate(range(int(s / 2), s * 8, s)):
        for n, v2 in enumerate(range(int(s / 2), s * 8, s)):
            if (i, j) == (k, n):
                return (v1, v2)

pprint(center(0,0))  # -> (25, 25)
pprint(center(6,3))  # -> (325, 175)

Итак, я сделал этот генератор:

def centerGenerator():
    s = 50
    for k in range(int(s / 2), s * 8, s):
        for n in range(int(s / 2), s * 8, s):
            yield k, n

def center(i, j):
    for c in centerGenerator():
        pass # how to take only c(i,j) from the Generator?

pprint(center(0,0))  # -> (25, 25)
pprint(center(6,3))  # -> (325, 175)

Но не знаю, как это реализовать. Есть мысли?

...