Find Nearest Point That Has the Same X or Y Coordinate

class Solution:
    def nearestValidPoint(self, x: int, y: int, points: List[List[int]]) -> int:
        
        valid_points = filter(lambda t: t[0] == x or t[1] == y, points)

        cmin = float('inf')
        minpoint = -1
        for p in valid_points:
            if (abs(p[0] - x) + abs(p[1] - y)) < cmin:
                cmin = min(cmin, abs(p[0] - x) + abs(p[1] - y))
                minpoint = p

        for px, p in enumerate(points):
            if p == minpoint:
                return px

        return -1