14 python sort和sorted区别?

什么是sorted?

sorted()函数对所有可迭代的对象进行排序操作

什么是sort?

sort对列表上的元素进行排序操作

sort与sorted的区别

  • sort是应用在list上的方法
  • sorted是可以对所有可迭代对象进行排序操作
  • sort方法返回的是对已经存在的列表进行操作,无返回值
  • sorted返回的是一个新的列表,而不是在原来的基础上操作。
  • [x]

sort() 函数

基本语法

L.sort(key=None,reverse=False)

实例

# 定义一个列表
list1 = [-1,2,4,3,5,-6,3,-9,-6]

# 排序
list1.sort()
print(list1)

# 倒序
list1.sort(reverse = True)
print(list1)

# 根据绝对值大小排序
list1.sort(key=abs)
print(list1)

输出结果

[-9, -6, -6, -1, 2, 3, 3, 4, 5]
[5, 4, 3, 3, 2, -1, -6, -6, -9]
[-1, 2, 3, 3, 4, 5, -6, -6, -9]

sorted() 函数

基本语法

sorted(iterable,cmp=None,Key=None,reverse=False)

有四个参数

  • iterable:可迭代对象
  • cmp:比较的函数,这个具有两个参数,参数的值都是可迭代对象中取出,此函数必须遵循的规则为,大于则返回1,小于则返回-1,等于则返回0
  • key:主要进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse:排序规则,reverse =True降序,reverse = False升序(默认)

返回值

返回重新排序的列表

实例

我们对列表做一些操作

# 基本语法
# sorted(iterable,cmp=None,key=None,reverse=False)

# 可以对所有可迭代的对象进行排序操作

# 定义一个简单的列表
list2 = [6,3,5,2,8,1]

# 进行排序
list3 = sorted(list2)
print(list3)

# 定义复杂一点的列表
list4 = [('a',6),('f',1),('e',2)]
# 利用key排序,字母进行排序
list5 = sorted(list4,key=lambda x:x[0])
print(list5)
# 利用key排序,数字进行排序
list6 = sorted(list4,key=lambda x:x[1])
print(list6)

# 定义再复杂一点的列表
list7 = [('zs','A',10),('ls','B',5),('ww','C',20)]
# 按照姓名排序
list8 = sorted(list7,key=lambda x:x[0])
print(list8)
# 按照字母排序
list9 = sorted(list7,key=lambda x:x[1])
print(list9)
# 按照数字排序
list10 = sorted(list7,key=lambda x:x[2])
print(list10)

运行结果

[1, 2, 3, 5, 6, 8]
[('a', 6), ('e', 2), ('f', 1)]
[('f', 1), ('e', 2), ('a', 6)]
[('ls', 'B', 5), ('ww', 'C', 20), ('zs', 'A', 10)]
[('zs', 'A', 10), ('ls', 'B', 5), ('ww', 'C', 20)]
[('ls', 'B', 5), ('zs', 'A', 10), ('ww', 'C', 20)]

我们定义一些字典进行操作

基本语法

sorted(dict.items(),key=lambda e:e[0],reverse=True)

来一些简单的例子

# 定义一个字典
list1 = {'a':4,'e':1,'c':10,'b':2}

# 按照字母排序
list2 = sorted(list1.items(),key=lambda x:x[0])
print(list2)

# 按照数字排序
list3 = sorted(list1.items(),key=lambda x:x[1])
print(list3)

结果输出:

[('a', 4), ('b', 2), ('c', 10), ('e', 1)]
[('e', 1), ('b', 2), ('a', 4), ('c', 10)]

我们将列表转换为字典

基本语法

dict = {}
for i in list:
    # 字典赋值,左边为键,右边为值
    list[i[0] = i[1]

举例

list1 = [('a', 4), ('b', 2), ('c', 10), ('e', 1)]
dict1 = {}
for i in list1:
    dict1[i[0]] = i[1]

print(dict1)

输出结果

{'a': 4, 'b': 2, 'c': 10, 'e': 1}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值