Python 自定义排序高级函数
- 1、自定义排序高级函数 `sort_self`
- 2、示例1
- 3、示例2
1、自定义排序高级函数 sort_self
def sort_self(iterable, *, key=None, reverse=False):
newlist = []
for x in iterable:
cx = key(x) if key else x
for i, y in enumerate(newlist):
cy = key(y) if key else y
order = cx > cy if reverse else cx < cy
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']