python列表排序

前言

在很多时候我们创建的列表是无法预测或者确定元素的排列顺序的,元素之间混乱的排列是无法避免的,但我们却又经常需要以特定的顺序呈现信息。对此,Python提供了很多组织列表的表达方式。

永久排序

sort() 方法对列表进行永久性的排序,排序后列表再也无法回到原来的排列顺序。

  • 正向排序。
fruits = ['banana', 'pear', 'apple', 'watermelon', 'orange']
print("排序前:", fruits)
fruits.sort()
print("排序后:", fruits)

在这里插入图片描述

  • 逆向排序。
    上面的代码是对列表元素进行了一个正向排序,如果要求是按逆向排序呢?我们只需在sort() 方法内部传递参数 reverse=True 即可。
fruits = ['banana', 'pear', 'apple', 'watermelon', 'orange']
print("排序前:", fruits)
fruits.sort(reverse=True)
print("排序后:", fruits)

在这里插入图片描述
当然,正向排序也可以传递参数来实现:

fruits = ['banana', 'pear', 'apple', 'watermelon', 'orange']
print("排序前:", fruits)
fruits.sort(reverse=False)
print("排序后:", fruits)

在这里插入图片描述
示例用的元素为字母,元素为数字时也是一样:

numbers = [23, 89, 42, 56, 12]
print("排序前:", numbers)
numbers.sort()
print("排序后:", numbers)

在这里插入图片描述

临时排序

有时候我们以特定顺序对列表排序后,要保留列表元素原来的排列顺序,这时就要用到 sorted() 方法。
函数 sorted() 按照特定顺序显示列表元素后,同时不影响他们在列表中的原始排列顺序。

  • 正向排序
fruits = ['banana', 'pear', 'apple', 'watermelon', 'orange']
print("原列表:", fruits)
print("临时排序:", sorted(fruits))
print("再次输出列表:", fruits)

在这里插入图片描述

  • 逆向排序
fruits = ['banana', 'pear', 'apple', 'watermelon', 'orange']
print("原列表:", fruits)
print("临时逆向排序:", sorted(fruits, reverse=True))
print("再次输出列表:", fruits)

在这里插入图片描述
临时排序和永久排序只是在函数的使用上不同,永久排序用的是 sort() ,而临时排序用的是 sorted() 。在使用方法上两者均相同。

反转列表元素顺序

reverse() 方法是将列表的元素进行一个整体的反转,即倒着将元素打印出来。reverse() 同样是永久地修改列表元素的排列顺序,但也可以随时将排列顺序进行恢复,只需要再次进行调用即可。

fruits = ['banana', 'pear', 'apple', 'watermelon', 'orange']
print("反转前:", fruits)
fruits.reverse()
print("反转后:", fruits)
fruits.reverse()
print("再次调用:", fruits)

在这里插入图片描述
注意:reverse() 方法不是按与字母顺序相反的顺序排列列表中的元素,而是仅仅对列表元素的排列顺序进行反转。

你可能感兴趣的:(python,排序算法,开发语言)