本文主要介绍一下python中的sort()和sorted()的区别和一些常用方法

1.主要区别
  1. sort 是应用在 list 上的方法,而sorted 可以对所有可迭代的对象进行排序操作;
  2. sort是对原有列表进行操作,而sorted返回的是一个新的可迭代对象,不会改变原来的对象;
  3. sort使用方法为list.sort(), 而sorted的使用方法为sorted(list)
2.sort()的主要用法

最简单的使用

a = [2, 1, 5, 4]
# reverse参数,对列表进行排序,True为从大到小排列, Fasle则为从小到大,默认为False
a.sort()
print(a)
# [1, 2, 4, 5]
a.sort(reverse=True)
print(a)
# [5, 4, 2, 1]

使用key值进行排序

a = [("a", 2), ("b", 1), ("c", 5), ("d", 4)]
a.sort()
print(a)
# [('a', 2), ('b', 1), ('c', 5), ('d', 4)]
# 对于上面的类型,我们使用普通的排序方法,返回的值和原来一样,排序并没有生效,所有这里我们介绍另一种方法,key
a = [("a", 2), ("c", 1), ("b", 5), ("d", 4)]
a.sort(key=lambda x: x[1])
print(a)
# [('c', 1), ('a', 2), ('d', 4), ('b', 5)]

综合使用

a = [("a", 2), ("c", 1), ("b", 5), ("d", 4)]
a.sort(key=lambda x: x[1])
print(a)
# [('c', 1), ('a', 2), ('d', 4), ('b', 5)]
a.sort(key=lambda x: x[1], reverse=True)
print(a)
# [('b', 5), ('d', 4), ('a', 2), ('c', 1)]

3.sorted()的主要用法

不会改变原列表的顺序

a = [2, 1, 5, 4]
b = sorted(a)
print(a)
# [2, 1, 5, 4]
print(b)
# [1, 2, 4, 5]
# 这里我们可以发现a的值没有变化,但是b的值变的有序了

最简单的使用

a = [2, 1, 5, 4]
# reverse参数,对列表进行排序,True为从大到小排列, Fasle则为从小到大,默认为False
b = sorted(a)
print(b)
# [1, 2, 4, 5]
b = sorted(a, reverse=True)
print(b)
# [5, 4, 2, 1]

使用key值进行排序

a = [("a", 2), ("c", 1), ("b", 5), ("d", 4)]
# 以第一个值进行排序
b = sorted(a, key=lambda x: x[0])
print(b)
# [('a', 2), ('b', 5), ('c', 1), ('d', 4)]
# 以第二个值进行排序
c = sorted(a, key=lambda x: x[1])
print(c)
# [('c', 1), ('a', 2), ('d', 4), ('b', 5)]

综合使用

a = [("a", 2), ("c", 1), ("b", 5), ("d", 4)]
b = sorted(a, key=lambda x: x[1])
print(b)
# [('c', 1), ('a', 2), ('d', 4), ('b', 5)]
c = sorted(a, key=lambda x: x[1], reverse=True)
print(c)
# [('b', 5), ('d', 4), ('a', 2), ('c', 1)]
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐