def distNDx(pt1, pt2, limit=0):
    """Returns distance between two nD points (as two n-tuples)
    It ignores items if they are not numeric, and also has
    an option to limit length of tuples to a certain 
    length defined by the `limit` argument"""
    if limit > 0:
        return (sum((vv2 - vv1)**2.0 for i, (vv1, vv2) in enumerate(zip(pt1, pt2))
        if isinstance(vv1, (int, float))
        and isinstance(vv2, (int, float))
        and i < limit))**0.5
    else:
        return (sum((vv2 - vv1)**2.0 for vv1, vv2 in zip(pt1, pt2)
        if isinstance(vv1, (int, float))
        and isinstance(vv2, (int, float))))**0.5