本文主要讲sort与sorted的主要区别,以便正确使用
一、
- sort()只能用于列表;sorted()可以用于所有可迭代对象;
比如:
str_a = "blue"
print(sorted(str_a))
>>>['b', 'e', 'l', 'u']
二、
- sort()对列表排序是进行原处排序,并不会返回新的列表;
- sorted()排序后会返回一个新的列表;
比如:
对于sort()来说:
lis_a = [5,4,3,2,1]
lis_a.sort()
print(lis_a)
>>>[1, 2, 3, 4, 5]
对于sorted()来说:
lis_a = [5,4,3,2,1]
lis_b = sorted(lis_a)
print(lis_a)
print(lis_b)
>>>[5, 4, 3, 2, 1]
>>>[1, 2, 3, 4, 5]
- 为什么会有两种方法,而不简单的使用一种方法就行了呢?
下面是我的个人理解,可能并不全对,如有纰漏望指正。
我认为,因为列表是可变序列,所以可以原地修改,也即可以原地排序。但是对于字符串等可迭代对象来说,是属于不可变的,是不可以原处修改的。sort()方法属于原地修改,所以可能只能用于列表,对于其他不可变的可迭代对象就创造了另一种sorted()方法。 - 还有一点浅层的就是ÿ