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])