list.sort()方法和sorted()方法的区别:
list.sort()方法会就地排序,也就是说不会把原列表复制一份,这也就是这个方法的返回值为None的原因
sorted()它会新建一个列表作为返回值。
相同点
list.sort方法和sorted 函数都有两个可选的关键字参数
reverse和key
reverse如果被设置为True,则会降序排序,这个参数的默认值为false
key一个只有一个参数的函数,这个函数会被用在序列里的每一个元素上,所产生的结果将是排序算法依赖的对比关键字。
fruits=['grape','ragpberry','apple','banana']
print(sorted(fruits)) #新建了一个按照字母排序的字符串列表。
print(fruits) #原列表并没有变化。
print(sorted(fruits,reverse=True)) # 按照字母降序排序。
print(sorted(fruits,key=len)) #新建一个按照长度排序的字符串列表。因为这个排序算法是稳定 的,grape 和 apple 的长度都是 5,它们的相对位置跟在原来的列表里是 一样的
print(sorted(fruits,key=len,reverse=True)) #按照长度降序排序的结果。
print(fruits) #原列表 fruits 都没有任何变化
print(fruits.sort()) #对原列表就地排序,返回值 None 会被控制台忽略。
print(fruits) #此时 fruits 本身被排序。
输出结果
“”"
[‘apple’, ‘banana’, ‘grape’, ‘ragpberry’]
[‘grape’, ‘ragpberry’, ‘apple’, ‘banana’]
[‘ragpberry’, ‘grape’, ‘banana’, ‘apple’]
[‘grape’, ‘apple’, ‘banana’, ‘ragpberry’]
[‘ragpberry’, ‘banana’, ‘grape’, ‘apple’]
[‘grape’, ‘ragpberry’, ‘apple’, ‘banana’]
None
[‘apple’, ‘banana’, ‘grape’, ‘ragpberry’]
“”"