本篇来对sorted和sort进行区分。
sorted(iterable, key=None, reverse=False)
- iterable – 可迭代对象(列表、元组、字典、字符串)。
- key – 指定可迭代对象中的一个元素来进行排序(通常是一个函数或直接lambda定义)。
- reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
- 内建函数
- 对所有可迭代的对象进行排序操作
- 返回一个新的重新排序的list,并不是在原来的基础上进行的操作
li = [1, 4, 2, 56, 43, 67, 23, 13, 42, 12]
print(li)
new_li = sorted(li)
print("-"*50)
print(new_li, li, sep="\n")
结果如下:
[1, 4, 2, 56, 43, 67, 23, 13, 42, 12]
--------------------------------------------------
[1, 2, 4, 12, 13, 23, 42, 43, 56, 67]
[1, 4, 2, 56, 43, 67, 23, 13, 42, 12]
其中除了通过reverse控制升降序,还可通过key
li = [1, 4, 2, 56, 43, 67, 23, 13, 42, 12]
print(li)
new_li = sorted(li, key=lambda x: x * -1)
print("-"*50)
print(new_li, li, sep="\n")
结果如下:
[1, 4, 2, 56, 43, 67, 23, 13, 42, 12]
--------------------------------------------------
[67, 56, 43, 42, 23, 13, 12, 4, 2, 1]
[1, 4, 2, 56, 43, 67, 23, 13, 42, 12]
sort(key=None, reverse=False)
- key – 指定可迭代对象中的一个元素来进行排序(跟sorted中key的功能一样)。
- reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。
- 在list中使用的方法
- 没有返回值,是直接对list进行排序操作。
li = [1, 4, 2, 56, 43, 67, 23, 13, 42, 12]
print(li)
li.sort()
print(li)
结果如下:
[1, 4, 2, 56, 43, 67, 23, 13, 42, 12]
[1, 2, 4, 12, 13, 23, 42, 43, 56, 67]