本文将会提及到三种对列表的排序方式,sort()、sorted()及reverse(),并会对它们的不同点进行比较。
1. sort()
使用sort()进行的排序是永久性的,列表被排序后不能恢复到排序前的状态。如:
#创建superman列表如下
>>> superman = ['LiuBei','GuanYu','ZhangFei','SunQuan']
>>> superman
['LiuBei', 'GuanYu', 'ZhangFei', 'SunQuan']
#使用sort()进行排序后,superman列表已发生永久变化
>>> superman.sort()
>>> print(superman)
['GuanYu', 'LiuBei', 'SunQuan', 'ZhangFei']
#可在sort()中加入参数reverse=True,实现反向排序
>>> superman.sort(reverse=True)
>>> print(superman)
['ZhangFei', 'SunQuan', 'LiuBei', 'GuanYu']
使用sorted()进行的排序是临时性的。
#创建superman列表如下
>>> superman = ['LiuBei','GuanYu','ZhangFei','SunQuan']
#使用sorted()进行临时排序
>>> print (sorted(superman))
['GuanYu', 'LiuBei', 'SunQuan', 'ZhangFei']
#再次打印superman列表,顺序没有发生改变
>>> print (superman)
['LiuBei', 'GuanYu', 'ZhangFei', 'SunQuan']
#sorted()中也可以加入参数reverse=True进行反向排序
>>> print (sorted(superman,reverse=True))
['ZhangFei', 'SunQuan', 'LiuBei', 'GuanYu']
reverse()只是把列表元素顺序倒置,不会根据字母排序
#创建superman列表如下
>>> superman = ['LiuBei','GuanYu','ZhangFei','SunQuan']
#使用reverse()进行反向打印
>>> superman.reverse()
>>> print (superman)
['SunQuan', 'ZhangFei', 'GuanYu', 'LiuBei']
总结:sort()和sorted()都是根据字母顺序进行排序,不同点在于,sort()是永久性的而sorted()是临时性的。reverse()严格来说不是一种排序方式,它只是把列表元素倒着打印一遍,并不会根据字母进行排序。reverse()对列表的操作也是永久性的,要想恢复,再次使用reverse()就可以了。