예제 #1
0
    def getClosest(self, color: Color, limit: int = 10) -> list:
        distsqr = {}
        for key, value in self.data.items():
            distsqr[key] = sum(
                (x - y)**2
                for x, y in zip(color.asTuple(), value[1].asTuple()))
        distsort = sorted(distsqr, key=distsqr.get)
        limit = min(len(distsort), limit)
        outlist = []

        for i in range(limit):
            outlist.append((distsort[i], distsqr[distsort[i]]))
        return outlist