Python 为什么我的代码什么也不返回?

Python 为什么我的代码什么也不返回?,python,list,Python,List,假设我的代码接收一个数字列表,对它们进行排序,然后删除所有重复的数字。但是,当使用调试器时,它告诉我非类型的对象没有长度,这意味着我的函数没有返回任何内容 def makeUnique(numList): numList = numList.sort() i = 0 while i < (len(numList)): if numList[i] == numList[i + 1]: del numList[i + 1]

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

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])
def makeUnique(numList):
numList=numList.sort()
i=0
而我<(len(numList)):
如果numList[i]==numList[i+1]:
德尔努姆利斯特[i+1]
其他:
i=i+1
返回numList
makeUnique([7,2,5,5,3,1,0])
我问了这么多问题,问的都是同样的问题,但似乎都不管用。这非常令人沮丧

numList = numList.sort()
sort()
对列表进行适当排序。它不返回任何东西;它会修改原始列表。这两种方法之一是:

numList.sort()
或:


numList=numList.sort()有问题。排序后numList.sort()返回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])
def makeUnique(numList):
numList.sort()
i=0
而我<(len(numList)):
如果numList[i]==numList[i+1]:
德尔努姆利斯特[i+1]
其他:
i=i+1
返回numList
打印makeUnique([7,2,5,5,3,1,0])

您在第一次迭代结束时无条件地从函数返回;不要缩进
return
。因此,您正在修改输入列表,这意味着不需要返回它。顺便说一下,
sorted(set(some_list))
执行OP打算执行的相同操作。除此之外,您不以任何方式存储、处理或打印函数调用的返回值。
  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])