Python学习系列之列表元素的排序(十二)
一、列表元素的排序操作
常见的两种排序方式:
- 调用sort()方法,列中的所有元素默认按照从小到大的顺序进行排序,可以指定reserve=True,进行降序排序
- 调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变
二、.使用sort()进行排序
1.使用sort()默认排序进行升序排序
#使用sort()排序 lst=[60,80,50,70,88,32] print('排序前:',lst,id(lst)) lst.sort() print('排序后:',lst,id(lst))
执行结果如下:
解析:使用sort方法默认进行升序排列且不会改变列表的内存地址空间
2.使用sort(reverse=True)进行降序排序
#使用sort(reverse=True)排序 lst=[60,80,50,70,88,32] print('排序前:',lst,id(lst)) lst.sort(reverse=True) print('排序后:',lst,id(lst))
执行结果如下:
解析:lst.sort(reverse=True)表示将lst列表按照降序进行排序,排序时不改变lst列表对象的内存地址,仅仅只是在其内部进行位置的调换
另:当reverse=True时进行降序排序,如果reverse=False时则进行升序排序,举例:
lst=[60,80,50,70,88,32] print('排序前:',lst,id(lst)) lst.sort(reverse=False) print('排序后:',lst,id(lst))
执行结果如下:
解析:故sort(reverse=False)可以对列表进行升序排序,和sort()默认升序排序的结果一样
3.使用内置函数sorted()进行升序排序
举例:
#调用内置函数sorted()进行升序排序 lst=[60,80,50,70,88,32] print('排序前:',lst,id(lst)) new_list=sorted(lst) print('排序后:',new_list,id(new_list))
执行结果如下:
解析:sorted()方法是内置函数,不需要申明和创建,直接使用即可,sorted(lst)表示调用sorted函数对lst列表进行升序排序,排序完成后会生成一个新的列表对象,原列表不做改变
4.调用内置函数sorted(reverse=True)进行降序排序
举例:
#调用内置函数sorted(reverse=True)进行降序排序 lst=[60,80,50,70,88,32] print('排序前:',lst,id(lst)) new_list=sorted(lst,reverse=True) print('排序后:',new_list,id(new_list))
执行结果如下:
解析:sorted(lst,reverse=True)表示调用sorted函数对列表lst进行排序,reverse=True表示是进行降序排序。调用sorted函数就会产生一个新的列表对象,所以新对象new_list的内存地址和原对象lst的内存地址不一致。
当reverse=False,依然是对新列表对象new_list进行升序排序,如下:
#调用内置函数sorted(reverse=False)进行升序排序 lst=[60,80,50,70,88,32] print('排序前:',lst,id(lst)) new_list=sorted(lst,reverse=False) print('排序后:',new_list,id(new_list))
执行结果如下:
总结:
1.对列表进行排序以后两种方式,第一种是使用sort方法,需要使用列表对象进行调用,不使用参数时默认进行升序排序,参数是reverse=True时表示进行降序排序,reverse=False时表示进行升序排序,sort()方法是对列表在原位置进行排序,即在列表内部进行各个值进行位置调整,不会产生新的列表对象
2.第二种是sorted()方法,sorted()是内置函数,直接使用即可,sorted()函数是在不变动原有列表的基础上,产生一个新的列表对象,在新列表对象中存放排序后的结果