编写函数,模拟Python内置函数sorted
时间: 2024-10-16 12:01:23 浏览: 47
当然可以,编写一个模拟Python内置`sorted()`函数的简单例子通常会接受一个列表作为输入,并返回一个新的已排序的列表。这个函数可以根据选择的排序规则(默认是升序排列,也可以自定义比较函数)对元素进行排序。这里是一个基础版本的实现:
```python
def custom_sorted(lst, key=None, reverse=False):
# 如果没有指定key,直接使用元素的默认顺序
if key is None:
return sorted(lst, reverse=reverse)
# 使用提供的key函数进行排序
def compare_fn(x, y):
return key(x) - key(y)
# 按照自定义函数返回值的大小进行排序
return sorted(lst, cmp=compare_fn, reverse=reverse)
# 示例用法
numbers = [5, 2, 9, 1, 7]
print(custom_sorted(numbers)) # 默认升序 [1, 2, 5, 7, 9]
print(custom_sorted(numbers, reverse=True)) # 升序反转 [9, 7, 5, 2, 1]
# 自定义按照字符串长度排序
strings = ['cat', 'dog', 'elephant']
print(custom_sorted(strings, key=len)) # 按长度升序 ['cat', 'dog', 'elephant']
```
阅读全文