Python学习系列之列表元素的排序(十二)

一、列表元素的排序操作

常见的两种排序方式:

  1. 调用sort()方法,列中的所有元素默认按照从小到大的顺序进行排序,可以指定reserve=True,进行降序排序
  2. 调用内置函数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()函数是在不变动原有列表的基础上,产生一个新的列表对象,在新列表对象中存放排序后的结果

 

posted @ 2020-11-27 14:45  寒冰宇若  阅读(1462)  评论(0编辑  收藏  举报