Python sorted() 函数 和 sort() 函数

本文对比sorted()函数和list.sort()函数的语法和用法。


sorted()函数对所有可迭代的对象进行排序,返回迭代对象中元素重新排序后组成的新list列表。

sorted()排序不改变原始结构,临时排序。

sorted函数语法:

sorted(iterable*key=Nonereverse=False)

sorted函数有两个命名关键字参数key和reverse。

key:作用于迭代对象中每个元素的函数,根据函数返回的结果的顺序,对原列表中的元素进行排序。

注意key返回的值仅仅是用于排序。sorted函数返回的结果,依然是原来列表中的元素的组合,只不过是按新的顺序了。

key 默认值为None,直接对各元素排序。

reverse:布尔值True或者False。reverse = True 降序 , reverse = False 升序(默认)。

【sorted()举例】

# sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:

sorted([36, 5, -12, 9, -21], key=abs)

# 返回的依然是原来列表中的元素,但排列的顺序是按照元素abs绝对值的顺序

结果:

[5, 9, -12, -21, 36]
sorted(['bob', 'about', 'Zoo', 'Credit'])

# 默认情况下,对字符串排序,是按照ASCII的大小比较的
# 由于'Z' < 'a',结果,大写字母Z会排在小写字母a的前面

结果:

['Credit', 'Zoo', 'about', 'bob']
# 如果我们要实现单纯的按照字母顺序排列呢

sorted(['bob', 'about', 'Zoo', 'Credit'],key=str.lower)

结果:

['about', 'bob', 'Credit', 'Zoo']
# 按字母顺序反序,不区分大小写

sorted(['bob', 'about', 'Zoo', 'Credit'],key=str.lower,reverse = True)

结果:

['Zoo', 'Credit', 'bob', 'about']

 

 sort()函数语法:

list.sort(*key=Nonereverse=False)

函数有两个命名关键字参数key和reverse。

key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse -- 布尔值排序规则,reverse = True 降序, reverse = False 升序(默认)。

【sort()举例】 

cars = ['bmw','audi','toyota','subaru']
cars.sort()
cars

 结果:['audi', 'bmw', 'subaru', 'toyota']

L1 = [3,10,39,20,38,10,20]
L1.sort(reverse=True) 
L1

结果: [39, 38, 20, 20, 10, 10, 3]

sort() 与 sorted() 区别:

sort 是应用在 list 上的方法,list.sort()。list 的 sort 方法返回的是对已经存在的列表进行操作,改变并对原list做替换,永久排序。

sorted 可以对所有可迭代的对象进行排序操作。sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值