當前位置:首頁 » 編程語言 » python二維排序

python二維排序

發布時間: 2025-01-10 10:56:00

python中對組合數據類型x進行排序的內置函數是

python有兩個內置的函數用於實現排序,一個是list.sort()函數,一個是sorted()函數。
區別1:list.sort()函數只能處理list類型數據的排序;sorted()則可以處理多種類型數據的排序。
區別2:list.sort()會修改原來的list為排序後的結果;sorted()不會修改原來的數據,只是返回一個排序後的對象。
下面來動手寫點代碼進行測試:
list進行簡單的排序
1 >>>a=['a','f','c','x','e']2 >>>a.sort()3 >>>a4 [a','c','e','f','x']
sorted()進行簡單排序
1 >>>a=['a','f','c','x','e']2 >>>a_new=sorted(a)3 >>>a_new4 ['a', 'c', 'e', 'f', 'x']
list.sort()和sorted都有默認的參數reverse,該參數的默認值為「False」,即默認升序排列。如果要進行降序排列:
1 >>>a=['a','f','c','x','e']2 >>>a_new=sorted(a,reverse=True)3 >>>a_new4 ['x', 'f', 'e', 'c', 'a']
對元組進行排列,不能使用list.sort()函數:
1 >>>a=('a','f','c','x','e')2 >>>a_new=a.sort()3
4 ttributeError: 'tuple' object has no attribute 'sort'
對字典的排序可以按照字典的key或者value進行排序:
1 >>>dic={"aa":11,"ff":5,"ee":22}2 >>>printsorted(dic.keys())3 ['aa', 'ee', 'ff']
從python2.4開始list.sort()和sorted()都引入了key參數來指定一個函數進行排序,有了key參數以後我們就可以對更加復雜的數據進行排序 。
假如需要排序的數據為一個list,但list的每一個元素都是一個字典,排序的方法如下:
>>>dic=[{"name":"sunny","age":20},
{"name":"bell","age":5},
{"name":"jim","age":1},
{"name":"jan","age":10}]>>>print sorted(dic,key=lambda arg:arg.get('age'),reverse=False) #按照每個字典的age的值進行排序,字典的方法dict.get(key)將返回指定鍵的值。
#輸出結果為:[{'age': 1, 'name': 'jim'}, {'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 20, 'name': 'sunny'}]
>>>print sorted(dic,key=lambda arg:arg.get('name'),reverse=False) #按照每個字典的name的值進行排序
#輸出結果為:[{'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 1, 'name': 'jim'}, {'age': 20, 'name': 'sunny'}]
假如需要排序的數據為一個二維的list,即list的每一個元素也是一個list,方法與上面的例子類似:
>>>a=[['100','8','30'],['200','5','50'],['300','1','20']]>>>print sorted(a,key=lambda arg:arg[1]) #按照每個list的第1個元素進行排序
[['300', '1', '20'], ['200', '5', '50'], ['100', '8', '30']]
前面的2個例子中,key參數的值都是函數。在sorted函數中,key參數後面的函數的參數的數量只能是一個。lambda arg:arg.get('age')是一個lambda匿名函數,它是一個沒有函數名的單語句函數。冒號左邊是參數,冒號右邊的返回值,返回值將被用於排序。

⑵ python二維數組按第一列排序問題,整行數據一起排序。

def by0(t):
return t[0]
a=[[1,2,4],[6,3,5],[2,4,5]]
a0=sorted(a,key=by0)
print(a0)
如果是多維數組按當中某行數據排序,修改自定義函數中return的數就行了

⑶ python 二維數組排序

python有自帶的sorted函數。
sorted 語法:

sorted(iterable, key=None, reverse=False)
iterable -- 可迭代對象。

key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。

reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。

比如,對二維數組按照第一個元素排序:arr = list(sorted(arr, key=lambda x: x[0]))

⑷ python中的list元組如何按照第二維元素排序

在Python中可以使用sorted函數對list進行排序,但是如果排序的對象是一個包含tuple的list時,sorted函數會使用tuple的第一個元素。

如果想要使用tuple的第二個元素進行排序,可以向sorted函數傳入一個key參數,key參數必須是一個函數,輸入是list的一個元素,輸出最好是一個數字或簡單的字元。

構造這樣一個函數可以使用匿名函數lambda,示例代碼如下:

myList=[('ngeon',7),('winterfell',4),('bran',9),('meelo',6)]
printsorted(myList,key=lambdax:x[1])
#[('winterfell',4),('meelo',6),('ngeon',7),('bran',9)]

⑸ python常見的三種列表排序演算法分別是什麼

python中有兩種排序方法,list內置sort()方法或者python內置的全局sorted()方法二者區別為:sort()方法對list排序會修改list本身,不會返回新list。sort()只能對list進行排序。sorted()方法會返回新的list,保留原來的list。

先說reverse,這個很簡單,就是指出是否進行倒序排序:一般情況下,1排在2的前面,而倒序則相反。key參數:一般它是一個函數,它接受列表中每一個元素,返回一個可用用於比較的值。

在Python中,Python演算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸並排序、快速排序、堆排序、基數排序等。冒泡排序冒泡排序也是一種簡單直觀的排序演算法。

③對所有兩個小數列重復第二步,直至各區間只有一個數。排序演示演算法實現希爾排序介紹希爾排序(ShellSort)是插入排序的一種,也是縮小增量排序,是直接插入排序演算法的一種更高效的改進版本。

排序演算法是《數據結構與演算法》中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。

⑹ Python中的兩種排序方法:sort()和sorted()

Python中常用的排序方法有 sort() 和 sorted()。sort() 方法直接修改原列表,返回值為 None;而 sorted() 則不會修改原列表,返回一個排序後的新列表。我們可以通過實例來說明:

python
import operator
a = [3, 4, 5, 1]
b = [1, 3, 2, 4]
c = {1: 'a', 3: 'b', 2: 'c'}
d = [[3, 1], [2, 4]]

print("print(a):", a)
print("print(a.sort()):", a.sort())
print("print(a):", a) # 注意,調用 sort() 後,a 的內容已改變

print("print(b):", b)
print("print(sorted(b))", sorted(b)) # 使用 sorted() 後,b 保持不變,輸出結果為 [1, 2, 3, 4]
print("print(b):", b)

print("print(c):", c)
print("print(sorted(c)):", sorted(c)) # 對字典排序時,sorted() 返回鍵的排序結果

print("print(operator.itemgetter(0)(a)):", operator.itemgetter(0)(a)) # 獲取 a 中元素的第一個元素

print("sorted(d,key=operator.itemgetter(0)):", sorted(d, key=operator.itemgetter(0))) # 按列表元素的子列表第一個元素排序
print("sorted(d,key=operator.itemgetter(1)):", sorted(d, key=operator.itemgetter(1))) # 按列表元素的子列表第二個元素排序

從上述代碼執行結果可以看出,sort() 方法直接修改了原列表 a 的內容,而 sorted() 則生成了一個新列表。另外,對於字典類型的排序,sorted() 會按字典鍵進行排序。同時,通過 operator.itemgetter() 方法可以實現更靈活的排序邏輯,例如根據列表中子列表的某個元素進行排序。

熱點內容
c語言源程序的基本單位 發布:2025-01-10 16:47:37 瀏覽:285
王者安卓賬號如何換到蘋果 發布:2025-01-10 16:34:47 瀏覽:729
c語言lua 發布:2025-01-10 16:34:46 瀏覽:206
我的世界檢測伺服器人員 發布:2025-01-10 16:32:30 瀏覽:832
資料庫表模板 發布:2025-01-10 16:22:21 瀏覽:356
郵政新農合社保卡初始密碼多少 發布:2025-01-10 16:01:32 瀏覽:143
安卓系統哪個最商務 發布:2025-01-10 15:49:28 瀏覽:910
填色腳本實例 發布:2025-01-10 15:34:21 瀏覽:759
如何配置燒烤 發布:2025-01-10 15:34:13 瀏覽:54
python列表相乘 發布:2025-01-10 15:31:33 瀏覽:322