[問題] list如何取前30%和後70%

看板Python作者 (busystudent)時間8年前 (2016/04/21 16:25), 8年前編輯推噓4(4010)
留言14則, 8人參與, 最新討論串1/1
各位好 有幾個問題想要詢問 我有個list如下所示,list中有多個物件,要如何自動取出30%和70%呢? list = [‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’10’,] 用虛擬碼舉例 我希望第一次印出前30% a = list * 30% print a 1,2,3 第二次印出後70% b = list * 70% print b 4,5,6,7,8,9,10 4,5,6,7,8,9,10 4,5,6,7,8,9,10 我第一種想法是用set的方式來解,印出這十個東西的位置,可是做到一半忽然想到,假如是11個東西算30%又會出現四捨五入的問題就卡關了。 還請大家解答,謝謝。 p.s有網友這周末(4/22,23,24)有空嗎?想找個短期家教問問題,主要為討論Python 問題及解答,若有興趣請來信,謝謝 -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.251.134 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1461227123.A.5C4.html ※ 編輯: busystudent (223.139.166.116), 04/21/2016 16:31:38

04/21 16:31, , 1F
好像有len()可以算list長度
04/21 16:31, 1F

04/21 16:34, , 2F
li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
04/21 16:34, 2F

04/21 16:35, , 3F
li[:int(len(li)*0.3)]; li[int(len(li)*0.3):]
04/21 16:35, 3F

04/21 16:37, , 4F
a, b = l[:round(len(l)*0.7)], l[round(len(l)*0.7):]
04/21 16:37, 4F

04/21 16:37, , 5F
關鍵字 list slicing
04/21 16:37, 5F

04/21 16:39, , 6F
round()會做四捨五入 int()會無條件捨去
04/21 16:39, 6F

04/21 16:39, , 7F
round()會做四捨五入 int()會無條件捨去
04/21 16:39, 7F

04/21 16:39, , 8F
感謝你
04/21 16:39, 8F
※ 編輯: busystudent (223.139.166.116), 04/21/2016 16:55:19

04/21 17:25, , 9F
幫你補充一下Set的順序不要拿來參考比較好
04/21 17:25, 9F

04/21 17:28, , 10F
可以說為什麼嗎?
04/21 17:28, 10F

04/21 17:45, , 11F
env dep
04/21 17:45, 11F

04/21 17:45, , 12F
set 又不是 list,又不排序.你怎麼照順序?
04/21 17:45, 12F

04/21 17:48, , 13F
謝謝你的說明
04/21 17:48, 13F

04/22 17:38, , 14F
sorted python查查看
04/22 17:38, 14F
文章代碼(AID): #1N68vpN4 (Python)