为什么我的代码什么都不返回?

2024-06-28 11:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码应该接收一个数字列表,对它们进行排序,然后删除任何重复的数字。但是,在使用调试器时,它告诉我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])

我问了这么多问题,问了同样的问题,但似乎都不管用。这很令人沮丧。你知道吗


Tags: 对象函数代码内容列表len排序def
2条回答

numList问题=numList.排序(). numList.排序()在排序后返回null,并且您再次将该值赋给list意味着numList变为None,当您在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])
numList = numList.sort()

sort()对列表进行适当排序。它不返回任何内容;它修改原始列表。可以这样做:

numList.sort()

或:

numList = sorted(numList)

相关问题 更多 >