List 排序

Python 中的 List 对象内置了一个 sort() 方法,该方法可以对 list 中的元素按 字母/数字,升序 进行自然排序,比如下面的代码:

thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort()
print(thislist)

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
['banana', 'kiwi', 'mango', 'orange', 'pineapple']

如果 list 中是全数字,默认按照数字升序排序,如下代码所示:

thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
[23, 50, 65, 82, 100]

List 降序

很多情况下,我们还有降序的需求,要降序的话需要在 sort() 中增加 reverse = True 参数,代码如下:

thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
['pineapple', 'orange', 'mango', 'kiwi', 'banana']

同样的道理,我们来看一下纯数字 list。

thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
[100, 82, 65, 50, 23]

Copy List

指的注意的是,Copy List 不能简单的用 list2 =list1, 这样的话 list1 和 list2 就是同一个引用,修改一个list会影响到另外一个list。

下面有两种方式可以实现 list 的copy。

  • 使用 copy() 函数
thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
['apple', 'banana', 'cherry']
  • 使用 list() 函数

将一个现有list 放到 新list 的构造函数中,如下代码所示:

thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist)

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
['apple', 'banana', 'cherry']

List 合并

在 python 中有几种方式可以实现多个 list 的合并。

  • 使用 + 号

这貌似也是 python 独有的,代码如下:

list1 = ["a", "b", "c"]
list2 = [1, 2, 3]

list3 = list1 + list2
print(list3)

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
['a', 'b', 'c', 1, 2, 3]
  • 使用 append() 函数

可以使用 append() 函数将一个集合中的每一项单独追加到新的集合,这种方式就比较麻烦,如下代码所示:

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

for x in list2:
  list1.append(x)

print(list1)
  • 使用 extend() 函数
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

list1.extend(list2)
print(list1)

更多 List 方法

List 下的方法特别多,其他的方法大家可以自己操作下。

Python 入门系列 —— 16. List 的其他操作_Python

译文链接:https://www.w3schools.com/python/python_lists_sort.asp

更多高质量干货:参见我的 GitHub: python