当前位置: 首页 > 面试题库 >

sort()返回None

邓毅
2023-03-14
问题内容

码:

import math
import time
import random
class SortClass(object):
    def sort1(self, l):
        if len(l)==1:
            return l
        elif len(l)==2:
            if l[0]<l[1]:
                return l
            else:
                return l[::-1]
        else:
            pivot=math.floor(len(l)/2)
            a=l[pivot:]
            b=l[:pivot]
            a2=self.sort1(a)
            b2=self.sort1(b)
            if a2==None or b2==None:
                a2=[]
                b2=[]
            return (a2+b2).sort()
        return []
Sort=SortClass()
x=[20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
print(Sort.sort1(x))

即使在两种情况下它应返回一个空列表,代码也会输出None:

return []

a2=self.mergeSort(a)
b2=self.mergeSort(b)
if a2==None or b2==None:
    a2=[]
    b2=[]
return (a2+b2).sort()

详细信息:该代码用于我为python练习制作的列表排序模块(我在python上相对较新)。sort1是修改后的mergesort。


问题答案:

@reut首先了解它,但是

return sorted(a2+b2)

return (a2+b2).sort()

另外

if a2 == None or b2 == None:
    a2 = []
    b2 = []

应该

if a2 == None:
    a2 = []
if b2 == None:
    b2 = []

如果将两者都设置为[]则都不设置,则意味着a2为[1]且b2都不为您将a2丢掉。我猜这是意外的。

同样在代码中,在较低的sortClass中有一个大写的S

另外return []永远不会返回,上述其他情况不允许它返回。



 类似资料:
  • 我可以看到返回。但是现在已经添加到C++20标准中,为什么返回?cppreference指定: 返回值 等于last的迭代器。 这个选择背后的理性是什么? 与相比,用例的优势是什么?

  • Shell排序是一种高效的排序算法,基于插入排序算法。 该算法避免了大的移位,如插入排序的情况,如果较小的值是最右边的并且必须移动到最左边。 该算法对广泛传播的元素使用插入排序,首先对它们进行排序,然后对间距较小的元素进行排序。 该间距称为interval 。 此间隔基于Knuth的公式计算为 - Knuth的公式 h = h * 3 + 1 where − h is interval wi

  • 问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:

  • Sort Colors 描述 Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue. Here, we will use t

  • Sort List 描述 Sort a linked list in O(n log n) time using constant space complexity. 分析 常数空间且O(nlogn),单链表适合用归并排序,双向链表适合用快速排序。本题可以复用 Merge Two Sorted Lists 的代码。 代码 // Sort List // 归并排序,时间复杂度O(nlogn),空间复

  • 以字母、数字或随机顺序排列变量的内容(可以选择是否移除重复项)。 Sort, VarName [, Options] 参数 VarName 内容需要排序的变量名. 选项 请参阅后面的列表. 选项 由零个或多个下列字母组成的字符串 (可任意顺序, 字母间可以用空格分隔): C: 区分大小写的排序 (如果同时存在 N 选项则此选项被忽略). 如果同时省略 C 和 CL, 则在排序中大写字母 A-Z 被