我正在尝试根据每一行对总数的贡献,从更大的列表中创建一个列表。 我希望列表中包含占总数40%的“前”行
每行对应总计的百分比。例如,第一个列表必须包含累积总计占“总计”的40%的行。 “总计”是列中所有行的总和。
list = [0.2, 0.25, 0.15, 0.1, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
我想得到:
list1 = [0.2, 0.25, 0.15, 0.1]
因为列表1中的值是列表中的最大值,并且它们是构成列表40%的值。
如何编写python代码来做到这一点?
我不知道如何进行,我看过的所有资源都讲授如何基于固定值进行拆分,但是我对列表中各值之和的基于分类的贡献百分比一无所知。
我想知道是否有人对我可以使用什么功能或如何进行有一个想法。预先感谢您的帮助。
答案 0 :(得分:0)
您可以尝试以下方法:
import math
list0
# Out[75]: [0.2, 0.25, 0.15, 0.1, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
list1 = sorted(list0)[-(math.ceil(len(list0)*0.4)):]
list1
# Out[79]: [0.1, 0.15, 0.2, 0.25]