关于python中的sorted()和sort()函数的区别

#在python的sort()函数 和 sorted()函数的区别
#sort只能应用在列表list上,不会创建新的list不用一个新的变量来继承,而且可以自己定义排序的方法,因此当列表中是一个数据容器的时候也可以进行排序
#sorted可以对所有可迭代的对象进行排序的操作,排序后会建立一个新的列表,需要我们新建一个变量去继承!但是,应用比较局限

#sort()函数有两个参数:key,reverse
#reverse指定排序是正序还是倒序,默认正序False, key表示我们进行排序的标准

#sort()函数,根据字符串长度排序
list=[‘1789’,‘23’,‘2’,‘345’,‘13’]
list.sort(key=len)
print(list) #[‘2’, ‘23’, ‘13’, ‘345’, ‘1789’]

#sort()函数根据字符的顺序排序
list1=[‘aaa’,‘cccc’,‘bb’,‘ff’]
list1.sort()
print(list1) #[‘aaa’, ‘bb’, ‘cccc’, ‘ff’]

#sort()根据字典中属性年龄排序,利用匿名函数lambda进行使用//匿名函数只能使用一次!
list2 = [{“name”: “C”, “age”: 16, “score”: 90},
{“name”: “D”, “age”: 13, “score”: 84},
{“name”: “A”, “age”: 14, “score”: 85},
{“name”: “E”, “age”: 15, “score”: 89},
{“name”: “F”, “age”: 12, “score”: 88}]
list2.sort(key=lambda a: a[“age”])
print(list2)

#cmp_to_key()函数,将列表元素按照从大到小顺序输出//这个我暂时不太了解
from functools import cmp_to_key
list = [5,4,6,2,9]
list.sort(key=cmp_to_key(lambda a,b: b-a))
print(list) #[9, 6, 5, 4, 2]

#sorted()函数有三个参数:iterable,key,reverse
#所有可以迭代的对象都可以用sorted来进行排序,排序不会改变原来的对象,所以是 *
#sorted(iterable, *, key=None, reverse=False)

tuples = [(‘john’, ‘A’, 15),(‘jane’, ‘B’, 12),(‘dave’, ‘B’, 10)]
print(tuples) #[(‘john’, ‘A’, 15), (‘jane’, ‘B’, 12), (‘dave’, ‘B’, 10)]

#按照元组中第三个值排序,打印后没有改变原有数据
new_tuples = sorted(tuples, key=lambda x: x[2])
print(new_tuples) #[(‘dave’, ‘B’, 10), (‘jane’, ‘B’, 12), (‘john’, ‘A’, 15)]

#itemgetter()函数在sorted()函数中的应用
from operator import itemgetter
student_tuples = [( ‘A’, 15),( ‘B’, 12),( ‘C’, 10) ]

result1 = sorted(student_tuples, key=itemgetter(1)) # 通过元素的第2个值排序
result3 = sorted(student_tuples, key=itemgetter(0,1)) # 首先通过元素的第一个值排序,然后通过第二个值排序
print(result1) #[(‘C’, 10), (‘B’, 12), (‘A’, 15)]
print(result3) #[(‘A’, 15), (‘B’, 12), (‘C’, 10)]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值