sorted
sorted() 函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sorted 语法:
sorted(iterable, key=None, reverse=False)
参数说明:
iterable – 可迭代对象。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值:返回重新排序的列表。
示例:
sorted([36, 5, -12, 9, -21])
sorted([36, 5, -12, 9, -21], reverse=True)
sorted([36, 5, -12, 9, -21], key=abs) # 按绝对值排序key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序
list(map(abs, [36, 5, -12, 9, -21]))
points = [(5,2), (7,3), (3,4),(1,1),(2,6)] # 按x坐标排序 y坐标排序 和0点距离排序
f_x = lambda x:x[0]
sorted(points, key=f_x)
f_y = lambda x:x[1]
sorted(points, key=f_y)
f_r = lambda x:x[0]**2+x[1]**2
sorted(points, key=f_r)