python版比較器 手把手教你學會(含鍊錶)

2021-10-23 00:02:42 字數 1718 閱讀 7299

# 比較器,過載比較運算子

# 對於任意的比較器,首先需要指定兩個數o1,o2

#對返回值有統一的規範

#返回負數時,認為o1應該排在o2的前面

#返回正數時,認為o2應該排在o1的前面

#返回0 時, 誰排在前面都可以

#例子1————官方給的是從小到大排序

a = [4,5,6,9,8,2,4,6,3,8,4]

b = sorted(a)

a.sort()

print(a)# 輸出:[2, 3, 4, 4, 4, 5, 6, 6, 8, 8, 9]

print(b)# 輸出:[2, 3, 4, 4, 4, 5, 6, 6, 8, 8, 9]

#例子2————比較器實現從大到小排序

import functools

def mycom_number(o1,o2):

return o2-o1

c = [4,5,6,9,8,2,4,6,3,8,4]

c.sort(key = functools.cmp_to_key(mycom_number))

print(c)

#輸出:[9, 8, 8, 6, 6, 5, 4, 4, 4, 3, 2]

# 例子3:定義乙個學生類,對學生排序

class student(object):

def __init__(self,name,age,classno):

self.name = name

self.age = age

self.classno = classno

def __str__(self):

return ('{},{},{}'.format(self.name,self.age,self.classno))

# 年齡按照從小到大排序

def mycom_age(o1,o2):

return o1.age - o2.age

# 先按照班級排好,再按照年齡從大到小排好

def mycom_no_age(o1,o2):

if o1.classno!=o2.classno:

return o1.classno-o2.classno

return o2.age - o2.age

stu1 = student('摸魚人生',16,1)

stu2 = student('尾號9536',18,2)

stu3 = student('奔跑',12,1)

stu4 = student('沒落',25,2)

arrs = [stu1,stu2,stu3,stu4]

b = sorted(arrs,key = functools.cmp_to_key(student.mycom_age))

for j in range(len(b)):

print(b[j])

'''奔跑,12,1

摸魚人生,16,1

尾號9536,18,2

沒落,25,2

'''arrs.sort(key = functools.cmp_to_key(student.mycom_no_age))

for i in range(len(arrs)):

print(arrs[i])

'''摸魚人生,16,1

奔跑,12,1

尾號9536,18,2

沒落,25,2

'''

python 詞云手把手 手把手教你生成炫酷的詞云

前言 話說,在這個大資料時代,獲取資訊顯得極為容易,可正是如此,我們想要對資訊進行直觀地了解難度就大了。excel是乙個很好的資料視覺化方法,不過有時候我們的資料 可能並不是一張或者多張excel 這樣子的話如果我們想利用excel進行資料視覺化就顯得不是那麼容易。首先我們需要逐個將資料匯入到exc...

手把手教你OA選型

oa選型永遠是oa行業的重要焦點,在選型問題上困擾了很多客戶,雲全oa從這幾個方面教你如何選型。了解研發技術 技術是硬道理。只有過關的技術才會研發出過硬的產品。如果技術不過關,後期將會帶來一系列的問題。同時需要考慮技術的先進性。在現如今社會發展日新月異,今天還遙遙領先的管理模式也許明天就會被淘汰。所...

手把手教你玩轉git

使用以上來寫git命令。mkdir xx 建立乙個空目錄 xx指目錄名 pwd 顯示當前目錄的路徑。git init 把當前的目錄變成可以管理的git倉庫,生成隱藏.git檔案。git add xx 把xx檔案新增到暫存區去。git commit m xx 提交檔案 m 後面的是注釋。git sta...