Python中的排序函式

2021-10-09 00:00:14 字數 2701 閱讀 4850

sorted(iterable,key=none,reverse=false)#返回排好序的新列表,不改變物件本身,預設公升序;reverse:-true降序 -false 正序對所有可迭代的物件均有效

list.sort(key=none,reverse=false)#將list自身進行排序,不返回新的list物件,預設公升序;reverse:-true降序 -false 正序

array = [[5, 3, 6], [3, 5, 8], [7, 2, 1]]

array.sort()

print(array)
[[3, 5, 8], [5, 3, 6], [7, 2, 1]]

array = [[5, 3, 6], [3, 5, 8], [7, 2, 1]]

array_ = sorted(array, key=lambda x: x[1]) // 按照物件array,基本元素的第1個元素排序

print(array_)

[[7, 2, 1], [5, 3, 6], [3, 5, 8]]

不區分大小寫時將其他基本元素中的元素都轉換為大寫,或小寫,預設按元素順序依次排序,區分大小寫,按ascii碼順序排序。

data=[(1,'b'), (1,'a'), (2,'a'), (0,'b'), (0,'a')]

#利用引數key來規定排序的規則

result=sorted(data,key=lambdax:(x[0],x[1].lower()))

print(data)#結果為 [(1, 'b'), (1, 'a'), (2, 'a'), (0, 'b'), (0, 'a')]

print(result)#結果為 [(0, 'a'), (0, 'b'), (1, 'a'), (1, 'b'), (2, 'a')]

這個list裡的元素是dict形式,每個dict都存有姓名和公升高現在想要以公升高進行公升序排列:

data=[, , ]

#將x['height']最為返回tuple的第個一元素

result=sorted(data,key=lambdax:(x['height'],x['name']))

print(data)#結果為

print(result)

#data  結果:[, , ]

#result 結果:[, , ]

將list排序,輸出排序後對應原來的下標:

1):

# 原資料

a = [5, 8, 2, 1, 7]

b = [(a[x], x) for x in range(len(a))]

b.sort(key=lambda x: x[0])

c = [x[1] for x in b]

d = [x[0] for x in b]

# c為排序排序後對應原來的下標

print(c)

# d為排序後的資料

print(d)

輸出結果:

[3, 2, 0, 4, 1]

[1, 2, 5, 7, 8]

2):

a = [5, 8, 2, 1, 7]

b = sorted(enumerate(a), key=lambda x: x[1])

c = [x[0] for x in b]

d = [x[1] for x in b]

# c為排序排序後對應原來的下標

print(c)

# d為排序後的資料

print(d)

輸出結果:

[3, 2, 0, 4, 1]

[1, 2, 5, 7, 8]

python中的排序

coding utf 8 from operator import itemgetter a 1,4,3,2,5 b 5,2,3 6,0,1 1,3,2 print sorted a 預設為公升序排序 print sorted a,reverse true reverse為true時,降序排列 pr...

Python中的排序

最近在學習python,想隨便 寫一下,python 寫一些 排序,排序 演算法 那麼多,我也不一一介紹,寫幾個比較簡單的,冒泡,選擇,快排,插入排序 用 python 實現一下,當然 也有參考 網上的寫法,相互學習吧,直接進入正題 氣泡排序 思想 我想大家 都應該理解就是 相鄰 兩個key 進行比...

python中的排序

1.sort.py 2.這個類用來演示如何對自定義物件進行排序 3.class sortobj 4.a 0 5.b 6.def init self,a,b 7.self.a a 8.self.b b 9.def printab self 10.print self.a,self.b 11.12.演示...