python解決排序問題

2021-10-05 20:27:57 字數 2482 閱讀 5682

**已知有以下列表:

員工編號,姓名,基本工資,獎金,住房補助,五險一金,其他扣款,專項附加扣除

incomelist = [

['10932','張珊',15000.00 ,4000.00 ,2300.00 ,980.00 ,300.00 ,1000.00],

['10933','李思',12000.00 ,5000.00 ,2600.00 ,890.00 ,400.00 ,2000.00],

['10934','王武',10100.00 ,2000.00 ,2500.00 ,860.00 ,500.00 ,1500.00],

['10935','趙柳',10050.00 ,1000.00 ,2700.00 ,1080.00 ,300.00 ,2000.00],

['10936','錢棋',10200.00 ,2000.00 ,2400.00 ,1000.00 ,600.00 ,1000.00],

['10941','張明',13600.00 ,4000.00 ,2100.00 ,680.00 ,300.00 ,1000.00],

['10942','趙敏',13200.00 ,2500.00 ,2300.00 ,670.00 ,400.00 ,3000.00],

['10945','王紅',13600.00 ,2600.00 ,2030.00 ,560.00 ,400.00 ,2000.00],

['10946','李蕭',12500.00 ,2800.00 ,2400.00 ,420.00 ,500.00 ,1500.00],

['10947','孫科',12000.00 ,3500.00 ,2030.00 ,880.00 ,300.00 ,1000.00],

['10948','劉利',14200.00 ,2500.00 ,2020.00 ,900.00 ,400.00 ,2000.00]

編寫程式,根據使用者輸入的表示式進行列表降序排序後,輸出員工編號,編號之間用逗號分隔。例如,使用者輸入2+3,代表需要按照第2項(基本工資)與第3項(獎金)的和進行降序排列。注:表示式中僅允許出現:2、3、4、5、6、7、+、-這幾個字元。完成以下三個輸入樣例的測試,貼上結果。

factor=

input()

defprintincomelist()

:print

(','

.join(x[0]

for x in incomelist)

)if factor.find(

'-')==0

: list1=factor.split(

'+')

deff

(x):

k=0for i in list1:

k+=x[

int(i)

]return k

incomelist.sort(key=f)

printincomelist(

)else

:if factor.find(

'+')==0

: list2=fator.split(

'-')

defk

(x):

p=x[

int(list2[0]

)]for i in list2 and i >0:

p-=x[

int(i)

]return p

incomelist.sort(key=k)

printincomelist(

)elif factor.find(

'+')!=0

: list3 = factor.split(

'-')

defl

(x):

if list3[0]

.find(

'+')==0

: p=x[

int(list3[0]

)]else

: list4=list3[0]

.split(

'+')

p=0for i in list4:

p+=x[

int(i)

]for i in list3[1:

]:if i.find(

'+')==0

: p-=x[

int(i)

]else

: list5=i.split(

'+')

p-=x[

int(list5[0]

)]for w in list5[1:

]:p+=x[

int(list5[

int(w)])

]return p

incomelist.sort(key=l)

printincomelist(

)

堆排序(解決排序問題)

我之前的文章解析過排序的幾種方法,這次的堆排序原理很好理解,但 的實現並不簡單,我覺得不適合入門。堆排序的實現實際上是把根節點提取出來,不管是最大堆還是最小堆,根節點永遠是極值。乙個交換函式 在 中實現交換。向下調整函式 它的作用是調整函式使它符合堆的特點。乙個建立堆的函式 刪除函式 每次刪除極值。...

python解決約瑟夫問題

據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所...

python解決NEXT DAY問題

print 請輸入日期 n year int input month int input day int input if year 2100 and year 1900 and month 1 and month 12 and day 1 and day 31 if month 1 or mont...