为什么我的代码什么都没有返回

时间:2017-11-01 15:13:40

标签: python list

我的代码假设接受一个数字列表,对它们进行排序,然后删除任何重复项。但是,在使用调试器时,它告诉我NoneType的对象没有长度,这意味着我的函数没有返回任何内容。

def makeUnique(numList):
    numList = numList.sort()
    i = 0
    while i < (len(numList)):
        if numList[i] == numList[i + 1]:
            del numList[i + 1]
        else:
            i = i + 1
        return numList

makeUnique([7,2,5,5,3,1,0])

我经历了很多问题同样的问题,但它似乎并没有起作用。这非常令人沮丧。

2 个答案:

答案 0 :(得分:4)

numList = numList.sort()

sort()对列表进行排序。它没有返回任何东西;它修改了原始列表。这个:

numList.sort()

或:

numList = sorted(numList)

答案 1 :(得分:0)

numList = numList.sort()的问题。 numList.sort()在排序后返回null,并指定再次列表意味着numList具有becom无,并且在len方法中使用它时进一步引发错误

  def makeUnique(numList):
        numList.sort()
        i = 0
        while i < (len(numList)):
            if numList[i] == numList[i + 1]:
                del numList[i + 1]
            else:
                i = i + 1
            return numList

    print makeUnique([7,2,5,5,3,1,0])