Python的自列表的定義排序

2021-09-24 05:49:38 字數 2490 閱讀 5702

因是c++acmer,故經常用到自定義排序

因為所有比較都可通過小於號的結果進行推導

class

dch:

def__init__

(self,a,b)

: self.first=a

self.second=b

def__str__

(self)

:return

"first={},second={}"

.format

(self.first,self.second)

def__lt__

(self, other):if

(self.first == other.first)

:return

int(self.second < other.second)

return

int(self.first < other.first)

# isinstance(100,int)

aa=dch(1,

2)bb=dch(

100,1)

cc=dch(50,

50)dd=dch(30,

-1)ee=dch(1,

20)mylist=

[aa,bb,cc,dd,ee]

mylist=

sorted

(mylist)

#sorted函式返回對list排序的結果,預設是穩定的歸併排序

for i in

range

(len

(mylist)):

print

(mylist[i]

)

列表也有內建函式sort,這是官方的解釋

sort(***, key=none, reverse=false)

此方法會對列表進行原地排序,只使用<來進行各項間比較。 異常不會被遮蔽 —— 如果有任何比較操作失敗,整個排序操作將失敗(而列表可能會處於被部分修改的狀態)。

sort()接受兩個僅限以關鍵字形式傳入的引數 (僅限關鍵字引數):

first=1,second=2

first=1,second=20

first=30,second=-1

first=50,second=50

first=100,second=1

可以參考python的官網文件:

class

pair

:def

__init__

(self,x=

0,y=0)

: self.x=x

self.y=y

def__lt__

(self, other)

:if self.x==other.x:

return self.yreturn self.x-self.y

def__str__

(self)

:return

"%d,%d"

%(self.x,self.y)

me=3

,4))

1,3)

)-1,

-1))

me.sort(key=

lambda x:

(x.y)

)for i in me:

print

(i)#輸出:

#-1,-1

#1,3

#3,4

lambda表示式的結果可返回乙個元組,按照對元素為元組的陣列排序則預設字典序排序。

class

pair

:def

__init__

(self,x=

0,y=0)

: self.x=x

self.y=y

def__str__

(self)

:return

"{} {}"

.format

(self.x,self.y)

if __name__ ==

'__main__'

: mmp=

1,2)

)0,2

))4,

5))7

,8))

4,3)

) mmp.sort(key=

lambda me:

(me.x,me.y)

)#這樣就會按照元組的字典序進行排序

for i in mmp:

print

(i)'''

輸出0 2

1 2

4 3

4 5

7 8

'''#

python列表的排序

列表排序有三種方法 reverse 方法 sort 方法 sorted 方法。1.reverse 列表反轉排序。把原列表中的元素順序從左至右反轉過來重新存放,而不會對列表中的引數進行排序整理,即不會根據大小排序。eg list1 d 6,e 5,f 4 list1.reverse list1 4,f...

python 列表排序 python列表排序有哪些

python列表排序 1 氣泡排序,是一種簡單的排序演算法,它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來 2 插入排序,通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。1 氣泡排序 氣泡排序 bubble sort 是一種簡單的排序...

python自增列表 字典中的列表自增問題求教

import easygui as g import os codingdict typedict linecountdict def choicecounttype 選擇要統計哪些 檔案型別 global codingdict global typedict global linecountdic...