类方法不返回python中的排序列表

Posted

技术标签:

【中文标题】类方法不返回python中的排序列表【英文标题】:class method not returning sorted list in python 【发布时间】:2021-09-14 13:24:47 【问题描述】:
class Solution:
    def sortedSquares(self, numbs):
        n = len(numbs)
        for i in range(n):
            numbs[i] = numbs[i] * numbs[i]
        return numbs.sort()
    
sol = Solution()
nums = [-4,-1,0,3,10]
sol.sortedSquares(nums)

类解决方案应该返回排序列表但什么也不返回,我检查了 nums 列表的值我得到了正确的输出但我不知道为什么这个方法没有返回排序列表,我尝试通过更改变量声明来解决它,但没有任何帮助。

【问题讨论】:

.sort() 不返回任何内容。使用sorted 或拆分排序并返回到两行。 【参考方案1】:

.sort() 返回无

所以,你想改用sorted

class Solution:
    def sortedSquares(self, numbs):
        n = len(numbs)
        for i in range(n):
            numbs[i] = numbs[i] * numbs[i]
        return sorted(numbs)
    
sol = Solution()
nums = [-4,-1,0,3,10]
sol.sortedSquares(nums)

但如果你还想使用 .sort(),只需调用 .sort() 方法,然后返回 numbs:

class Solution:
    def sortedSquares(self, numbs):
        n = len(numbs)
        for i in range(n):
            numbs[i] = numbs[i] * numbs[I]
        numbs.sort()
        return numbs
        
    
sol = Solution()
nums = [-4,-1,0,3,10]
sol.sortedSquares(nums)

无论哪种方式都可以。

【讨论】:

以上是关于类方法不返回python中的排序列表的主要内容,如果未能解决你的问题,请参考以下文章

深入理解python中的排序sort

比较Java方法的重载与覆盖

通过C学Python列表的常用方法

python列表排序并返回索引

Python 面向对象编程

如何从不同的类初始化方法中的列表项?