函数内部函数,python递归列表

def minimizeMaximumPair(lst):
    lst.sort()

    def compute(aList):
        if len(aList) != 0:
            return [(aList[0], lst[len(aList) - 1])].extend(compute(aList[1:len(aList) - 1]))
        return []

    return compute(lst)

当我得到最后一个递归步骤时,我得到一个

TypeError: 'NoneType' object is not iterable

我试着什么都没回来,而且[]

最佳答案 而不是list.extend返回None,你可以使用list .__ iadd__

__iadd__也将列表扩展到位,但之后返回列表

如果您厌恶使用特殊方法,可以使用运算符模块中的iadd

from operator import iadd

...

def compute(aList):
    if len(aList) != 0:
        return iadd([(aList[0], aList[-1])], compute(aList[1: -1]))
    return []
点赞