1 基本排序

1.1 sort() 函数(对列表进行永久性排序,无法恢复原有序列)

直接使用 list.sort() 方法,会直接修改原列表(并返回 None 以避免混淆),不如直接使用 sorted() 方便
但是如果不需要原列表 list.sort() 会更有效率

  1. In [6]: a = ([3, 4,2, 1,9,8])
  2. In [7]: a.sort()
  3. In [8]: a
  4. Out[8]: [1, 2, 3, 4, 8, 9]

向 sort() 方法传递 reverse=True,可以反向排序,同理排序是永久的,不可改变的

  1. In [9]: a.sort(reverse=True)
  2. In [10]: a
  3. Out[10]: [9, 8, 4, 3, 2, 1]

1.2 sorted() 函数(对列表进行临时排序,按照特定顺序显示列表元素,不影响原有列表排列顺序)

调用 sorted() 函数,返回一个新的已排序列表

  1. In [1]: sorted([3, 4, 2, 1, 9, 8])
  2. Out[1]: [1, 2, 3, 4, 8, 9]

注意:
调用函数sorted() 后,列表元素的排列顺序并没有变。如果你要按与字母顺序相反的顺序显示列表,也可向函数sorted() 传递参数reverse=True

sort 和 sorted 的区别:

  • sort 是对已有列表进行操作,对其施加的影响是永久性的,不可改变的
  • sorted 则是将原有列表进行拷贝,在新的列表上进行操作,对原有列表的顺序没有影响

    1.3 reverse() 方法

    反转列表元素的排列顺序,只是单纯的反转列表的排列顺序, 不是指按与字母顺序相反的顺序排列列表元素
    reverse() 永久性地修改列表元素的排列顺序,但若想恢复到原来的排列顺序,只需对列表再次调用reverse() 即可

    1.4 range() 函数

    产生一个数据范围,可迭代
    [start, end, step],左包右不包