# 比較器,過載比較運算子
# 對於任意的比較器,首先需要指定兩個數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...