'''
sorted()
运行原理:
    把可迭代数据里面的元素,一个一个的取出来,放到key这个函数中进行处理,
    并按照函数中return的结果进行排序,返回一个新的列表
功能: 排序
参数:
    iterable 可迭代的数据 (容器类型数据,range数据序列,迭代器)
    reverse  可选,是否反转,默认为False,不反转, True反转
    key      可选, 函数,可以是自定义函数,也可以是内置函数
返回值: 排序后的结果
'''
arr = [3,7,1,-9,20,10]
# 默认按照从小到大的方式进行排序
res1 = sorted(arr)  # [-9, 1, 3, 7, 10, 20]

# 可以按照从大到小的方式进行排序
res2 = sorted(arr,reverse=True)  # [20, 10, 7, 3, 1, -9]

# 使用abs这个函数(求绝对值)作为sorted的key关键字参数使用
res3 = sorted(arr,key=abs) #以绝对值的大小去进行排序
print(res1,res2,res3)

输出结果:

[-9, 1, 3, 7, 10, 20]
[20, 10, 7, 3, 1, -9]
[1, 3, 7, -9, 10, 20]
# 使用自定义函数
def func(num):
    print(num,num % 2)
    return num % 2
    
arr = [3,2,4,6,5,7,9]

# 在sorted函数中使用自定义函数对数据进行处理
res = sorted(arr,key=func)
print(res)

## 优化版
arr = [3,2,4,6,5,7,9]
res = sorted(arr,key=lambda x:x%2)
print(res)

输出结果:

3 1
2 0
4 0
6 0
5 1
7 1
9 1
[2, 4, 6, 3, 5, 7, 9]
[2, 4, 6, 3, 5, 7, 9]
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐