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 = [10050658223]
thislist.sort()
print(thislist)

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

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 = [10050658223]
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
[10082655023]

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 = [123]

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'123]

  • 使用 append() 函数

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


list1 = ["a""b" , "c"]
list2 = [123]

for x in list2:
  list1.append(x)

print(list1)

  • 使用 extend() 函数

list1 = ["a""b" , "c"]
list2 = [123]

list1.extend(list2)
print(list1)

更多 List 方法

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

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

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