作者busystudent (busystudent)
看板Python
标题[问题] list如何取前30%和後70%
时间Thu Apr 21 16:25:21 2016
各位好 有几个问题想要询问
我有个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://webptt.com/cn.aspx?n=bbs/Python/M.1461227123.A.5C4.html
※ 编辑: busystudent (223.139.166.116), 04/21/2016 16:31:38
1F:推 iWRZ: 好像有len()可以算list长度04/21 16:31
2F:→ alibuda174: li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]04/21 16:34
3F:→ alibuda174: li[:int(len(li)*0.3)]; li[int(len(li)*0.3):]04/21 16:35
4F:推 tiefblau: a, b = l[:round(len(l)*0.7)], l[round(len(l)*0.7):]04/21 16:37
5F:→ tiefblau: 关键字 list slicing04/21 16:37
6F:→ tiefblau: round()会做四舍五入 int()会无条件舍去04/21 16:39
7F:→ tiefblau: round()会做四舍五入 int()会无条件舍去04/21 16:39
8F:→ busystudent: 感谢你04/21 16:39
※ 编辑: busystudent (223.139.166.116), 04/21/2016 16:55:19
9F:推 Yshuan: 帮你补充一下Set的顺序不要拿来参考比较好 04/21 17:25
10F:→ busystudent: 可以说为什麽吗? 04/21 17:28
11F:→ mikapauli: env dep 04/21 17:45
12F:→ freeunixer: set 又不是 list,又不排序.你怎麽照顺序? 04/21 17:45
13F:→ busystudent: 谢谢你的说明 04/21 17:48
14F:推 checkIO: sorted python查查看 04/22 17:38