用Python编写函数,模拟内置函数sorted()
时间: 2023-11-10 22:10:19 浏览: 72
下面是用Python编写的模拟内置函数sorted()的函数:
```python
def my_sorted(iterable, reverse=False):
# 将可迭代对象转换为列表,方便排序
lst = list(iterable)
# 冒泡排序
for i in range(len(lst)):
for j in range(len(lst) - i - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
# 如果需要反向排序,则将结果反转
if reverse:
lst.reverse()
return lst
```
使用示例:
```python
# 对列表进行排序
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(my_sorted(lst)) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# 对元组进行排序
tup = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5)
print(my_sorted(tup)) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# 对字典进行排序
dic = {'a': 3, 'b': 1, 'c': 4, 'd': 1, 'e': 5, 'f': 9, 'g': 2, 'h': 6, 'i': 5, 'j': 3, 'k': 5}
print(my_sorted(dic)) # ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']
# 对集合进行排序
s = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}
print(my_sorted(s)) # [1, 2, 3, 4, 5, 6, 9]
```
注意:上述实现只适用于一些简单的可迭代对象,如列表、元组、集合和字典的键。如果需要对其他类型的对象进行排序,需要自定义比较函数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)