Python 自定义排序高级函数(值得学习处理思路)

Python 自定义排序高级函数

  • 1、自定义排序高级函数 `sort_self`
  • 2、示例1
  • 3、示例2

1、自定义排序高级函数 sort_self

def sort_self(iterable, *, key=None, reverse=False):  # [5, 1, 3, 0, 6]
    newlist = [] # 5 
    for x in iterable: # 1
        cx = key(x) if key else x # cx = 1
        for i, y in enumerate(newlist):  # i = 0 y = 5
            cy = key(y) if key else y  # cy = 5
            order = cx > cy if reverse else cx < cy # 1 < 5
            if order:
                newlist.insert(i, x)
                break  # 找到了合适的插入位置并插入成功了
        else:
            newlist.append(x)
    return newlist

2、示例1

list1 = [1, 5, 3, 9, 7]
print(sort_self(list1))
print(sort_self(list1, reverse=True))
print(sort_self(list1, key = lambda x: 10 - int(x)))
[1, 3, 5, 7, 9]
[9, 7, 5, 3, 1]
[9, 7, 5, 3, 1]

3、示例2

list2 = [1, 5, 3, 9, 7, '1', 'a', '=']
print(sort_self(list2, key = lambda x: ord(str(x))))
print(sort_self(list2, key = str, reverse=True))
[1, '1', 3, 5, 7, 9, '=', 'a']
['a', '=', 9, 7, 5, 3, 1, '1']

你可能感兴趣的:(Python,python)