Re: [問題] 想請教一個問題

看板Python作者 (台灣獨立建國不必錢嗎?)時間14年前 (2011/02/11 22:49), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
※ 引述《DP1010 (DP)》之銘言: : 現在有一個list : 假設長這樣 ['369','200','116','90','180','638','724','920','14','50','11','65'] : 我現在想要找出這list裡面數字的最大5個 : 其依序的"位置"為何 : 比如這個list最大的數字 依序為 920 724 638 369 200 : 其依序的位置為 7 6 5 0 1 : 想請教各位大大要怎麼做 : 謝謝 L=['369','200','116','90','180','638','724','920','14','50','11','65'] zip(*sorted(enumerate(map(int, L)), key=lambda x: x[1], reverse=True)[:5])[0] 以下拆解幾個步驟來做說明: intL=map(int, L) # 轉成數字串列 sortedL=sorted(enumerate(intL), key=lambda x: x[1], reverse=True)[:5] # 用 enumerate 為每個數編號,以第二個欄位為 key ,由大到小排序,取前五個 # sortedL 長這樣: [(7, 920), (6, 724), (5, 638), (0, 369), (1, 200)] zipL=zip(*sortedL) # sortedL 長這樣: [(7, 920), (6, 724), (5, 638), (0, 369), (1, 200)] # zipL 長這樣:[(7, 6, 5, 0, 1), (920, 724, 638, 369, 200)] ans=zipL[0] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.46 ※ 編輯: oaz 來自: 140.112.30.46 (02/11 22:51)
文章代碼(AID): #1DLKo9G8 (Python)
討論串 (同標題文章)
文章代碼(AID): #1DLKo9G8 (Python)