Python 生成递归函数时出现类型错误

Python 生成递归函数时出现类型错误,python,Python,制作递归函数对图形点进行排序。编译时获取错误信息: TypeError: can only concatenate list (not "NoneType") to list 示例xy值:[[1,1]、[2,2]、[2,3]等] def FindNext(list_xy): if len(list_xy) == 1: xo = list_xy[0][0] yo = list_xy[0][1] return [xo, y

制作递归函数对图形点进行排序。编译时获取错误信息:

TypeError: can only concatenate list (not "NoneType") to list
示例
xy
值:
[[1,1]、[2,2]、[2,3]等]

def FindNext(list_xy):
    if len(list_xy) == 1:
        xo = list_xy[0][0]
        yo = list_xy[0][1]
        return [xo, yo]
    xo = list_xy[0][0]
    yo = list_xy[0][1]
    for i in range(len(list_xy)):
        xf = list_xy[i][0]
        yf = list_xy[i][1]
        dx = xo - xf
        dy = yo - yf
        d = (dx**2+dy**2)**0.5
        if d == 2**0.5 or d ==1:
            return [xo, yo] + FindNext(list_xy[1:])
FindNext(xy)

如果Python到达函数末尾时未点击
return
,则会隐式返回
None
,因此您的函数输入之一可能正在执行此操作。您可以通过在函数末尾添加
return[]
来解决这个问题,尽管我不知道您所计算的逻辑是否正确。

不是
FindNext
中的所有路径都返回一个值。如何按x、y等对点进行排序?当我运行代码时,您的示例
xy
适用于我。假设错误在哪一行?请提供一个可运行的完整数据xy数据集:[[1,1],[2,2],[2,3],[2,5],[3,6],[4,6],[5,6],[6,7],[7,7],[9,8],[9,9],[6,10],[4,11],[5,11],[3,12],[8,12],[4,13],[6,13],[7,13],[7,9],[9,9],[14,9],[17,9],[9, 18], [9, 19], [13, 19], [10, 20], [11, 20], [12, 20], [14, 20], [15, 21], [6, 22], [10, 22], [12, 22], [15, 22], [5, 23], [7, 23], [8, 23], [9, 23], [11, 23], [13, 23], [16, 23], [5, 24], [13, 24], [16, 24], [4, 25], [14, 25], [15, 25], [3, 26], [4, 27], [3, 28], [3, 29], [3, 30], [2, 31]]