python中 关于 sort() 和sorted() 用法详解

1. sort:

sort是Python中列表的方法

sort() 语法格式:
list.sort(key=None, reverse=False)

sort可以对列表元素进行排序,该方法没有返回值,也就是返回值为 None,直接改变原列表中元素的顺序,是对列表的就地排序。

  • key:是指用来比较的关键字,可以说是列表元素的一个权值。key一般用来接受一个函数(或者匿名函数),这个函数只接受一个元素,并返回其权值。
  • reverse:是否逆序排列(reverse默认为False,sort函数默认按照字母顺序排序。如果令reverse=True,那么就会按照与字母顺序相反的顺序排序)

例子演示:
1、按照列表元素最后一个字母进行倒序排序

isalpha = ['BAaWea','ABivc','CEpd','dDDizb','FHhone','EKe']
isalpha.sort(key=lambda x:x[-1], reverse=True)
print(isalpha)

结果:

['FHhone', 'EKe', 'CEpd', 'ABivc', 'dDDizb', 'BAaWea']

2、按照列表元素第二个字母进行顺序排序

isalpha = ['BAaWea','ABivc','CEpd','dDDizb','FHhone','EKe']
def fun1(x):
    return x[1]
isalpha.sort(key=fun1)
print(isalpha)

结果:

['BAaWea', 'ABivc', 'dDDizb', 'CEpd', 'FHhone', 'EKe']

3、数字的倒序,和顺序排序

num = [1,5,3,2,8,4,0]
num.sort()
print(num)
num.sort(reverse=True)
print(num)

结果:

[0, 1, 2, 3, 4, 5, 8]
[8, 5, 4, 3, 2, 1, 0]

2. sorted:

sorted() 函数是Python中的内置函数

sorted 可以对所有可迭代的对象进行排序操作,尤其是可以对字典进行排序。sorted() 函数将重新排序 iterable 参数中的元素,并将结果返回一个新的列表(对原列表的顺序不会产生影响)。

语法格式为:sorted(iterable, key=None, reverse=False)。

  • iterable:指定一个待排序的可迭代对象。
  • key:指定一个只有单个参数的函数,用于从 iterable
    参数的每个元素中提取用于比较的有效关键值(比如可以用 key = str.lower 来实现忽略大小写的排序;或者用 key = len
    进行基于字符串长度的排序)
  • reverse:该参数是一个布尔类型值,如果设置为 True,则将结果反向排序,默认值是 False。

例子演示:
1、对列表进行排序

num = [1,5,3,2,8,4,0]
print(sorted(num))

结果:

[0, 1, 2, 3, 4, 5, 8]

2、对元祖进行排序

num2 = (3,2,7,4,0,1,1)
print(sorted(num2))

结果:

[0, 1, 1, 2, 3, 4, 7]

3、对字典进行排序

对于字典而言,默认对keys进行排序

num3 = {"Houmin":18, "Chen":22, "Wang":12}
print(sorted(num3))  # 对于字典而言,默认对keys进行排序
print(sorted(num3.items())) # 根据items进行排序,以列表形式返回键值对
print(sorted(num3.values())) # 对字典中的值进行排序,返回列表形式

结果:

['Chen', 'Houmin', 'Wang']
[('Chen', 22), ('Houmin', 18), ('Wang', 12)]
[12, 18, 22]
根据年龄从大到小进行排序
num3 = {"Houmin":18, "Chen":22, "Wang":12}
print(sorted(num3.items(),key=lambda x:x[1]))
print(sorted(num3.items(), key=lambda x:x[-1]))

结果:

[('Wang', 12), ('Houmin', 18), ('Chen', 22)]
[('Wang', 12), ('Houmin', 18), ('Chen', 22)]
根据年龄从大到小进行排序
print(sorted(num3.items(), key=lambda x:x[1], reverse=True))

结果:

[('Chen', 22), ('Houmin', 18), ('Wang', 12)]
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值