微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

函数内部函数,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 []

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐