首页 > 解决方案 > 获得嵌套循环的第 n 次迭代?

问题描述

我有这个片段可以在我的 GUI 中“生成”图形中心...问题是太慢了,因为解决方案迭代太多。所以我想知道如何实现一个生成器来获取我需要的 exacle 值。

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)

但是我知道如何实现它。有什么想法吗?

标签: python-3.xgenerator

解决方案


推荐阅读