首先還是說下sort的特性,它對原列表進行排序,但是返回的是空列表。如果直接將值賦予另一個變數,排序後,原列表也會跟著改變。
>>> num = [1,3,2,4,5,2,33,8]
>>> n = num
>>> n.sort()
>>> print(n,num)
[1, 2, 2, 3, 4, 5, 8, 33] [1, 2, 2, 3, 4, 5, 8, 33]
要想保留原列表不變,可以用切片處理。
>>> n = num[:]
[1, 2, 2, 3, 4, 5, 8, 33] [1, 3, 2, 4, 5, 2, 33, 8]
除了切片,也可以使用淺copy:
>>> n =num.copy()
但是今天要說的是另外一個事,sort裡面還有個引數
num = [[1,2],[4,2],[5,3],[2,1]]#列表中鑲嵌列表
>>> n.sort(key = lambda x : x[0])#sort要設定一個排序的關鍵引數
>>> print(n)
[[1, 2], [2, 1], [4, 2], [5, 3]]#用列表中的第一位數作為排序基礎
取列表中的第二位數作為排序基礎,可以看到,當第二位數相等時,會自動按第一位數的大小排。
>>> num = [[1,2],[4,2],[5,3],[2,1]]
>>> n = num.copy()
>>> n.sort(key = lambda x : x[1])
[[2, 1], [1, 2], [4, 2], [5, 3]] [[1, 2], [4, 2], [5, 3], [2, 1]]
首先還是說下sort的特性,它對原列表進行排序,但是返回的是空列表。如果直接將值賦予另一個變數,排序後,原列表也會跟著改變。
>>> num = [1,3,2,4,5,2,33,8]
>>> n = num
>>> n.sort()
>>> print(n,num)
[1, 2, 2, 3, 4, 5, 8, 33] [1, 2, 2, 3, 4, 5, 8, 33]
要想保留原列表不變,可以用切片處理。
>>> num = [1,3,2,4,5,2,33,8]
>>> n = num[:]
>>> n.sort()
>>> print(n,num)
[1, 2, 2, 3, 4, 5, 8, 33] [1, 3, 2, 4, 5, 2, 33, 8]
除了切片,也可以使用淺copy:
>>> num = [1,3,2,4,5,2,33,8]
>>> n = num
>>> num = [1,3,2,4,5,2,33,8]
>>> n =num.copy()
>>> n.sort()
>>> print(n,num)
[1, 2, 2, 3, 4, 5, 8, 33] [1, 3, 2, 4, 5, 2, 33, 8]
但是今天要說的是另外一個事,sort裡面還有個引數
num = [[1,2],[4,2],[5,3],[2,1]]#列表中鑲嵌列表
>>> n = num[:]
>>> n.sort(key = lambda x : x[0])#sort要設定一個排序的關鍵引數
>>> print(n)
[[1, 2], [2, 1], [4, 2], [5, 3]]#用列表中的第一位數作為排序基礎
取列表中的第二位數作為排序基礎,可以看到,當第二位數相等時,會自動按第一位數的大小排。
>>> num = [[1,2],[4,2],[5,3],[2,1]]
>>> n = num.copy()
>>> n.sort(key = lambda x : x[1])
>>> print(n,num)
[[2, 1], [1, 2], [4, 2], [5, 3]] [[1, 2], [4, 2], [5, 3], [2, 1]]