高阶函数实现-sort
1.实现排序的方式一
def mysort(iter):
    ret = []
    for x in iter:
        for k,v in enumerate(ret):
            if x > v:#通过这个来判断升序降序
                ret.insert(k,x)
                break
        else:
            ret.append(x)
    return ret
print(mysort([1, 2, 45, 6, 7, 8]))2.通过引入reverse参数来比较
def mysort(iter,reverse=False):
    ret = []
    for x in iter:
        for k,v in enumerate(ret):
            if reverse:
                flag = x > v
            else:
                flag = x < v
            if flag:
                ret.insert(k,x)
                break
        else:
            ret.append(x)
    print(ret)
    return ret
mysort([1,2,4,3,6,9,8])可以简化一下:
def mysort(iter, reverse=True):
    ret = []
    for x in iter:
        for k, v in enumerate(ret):
            flag = x > v if reverse else x < v
            if flag:
                ret.insert(k, x)
                break
        else:
            ret.append(x)
    print(ret)
    return ret
mysort([1, 2, 4, 3, 6, 9, 8])3.方式三,引入参数lambda函数
def mysort(iter, key=lambda x,y:x>y):
    ret = []
    for x in iter:
        for k,v in enumerate(ret):
            if key(x,v):
                ret.insert(k,x)
                break
        else:
            ret.append(x)
    print(ret)
    return ret
mysort([1,4,6,8,3,5])改进版:
def mysort(iter, reverse=False, key=lambda x, y: x < y):
    ret = []
    for x in iter:
        for k,v in enumerate(ret):
            flag = key(x,v)
            if flag:
                ret.insert(k,x)
                break
        else:
            ret.append(x)
    print(ret)
    return ret
mysort([1, 4, 6, 8, 3, 5])
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号