以下是一个示例代码,展示了如何按百分比拆分一个列表:
def split_list_by_percentage(lst, percentages):
if sum(percentages) != 100:
raise ValueError("Percentages should add up to 100")
length = len(lst)
split_points = [int(length * p / 100) for p in percentages]
result = []
start = 0
for point in split_points:
result.append(lst[start : start + point])
start += point
result.append(lst[start:]) # 将剩余的元素添加到最后一个子列表
return result
# 示例用法
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
percentages = [40, 30, 30]
result = split_list_by_percentage(my_list, percentages)
print(result)
运行以上代码,输出结果为:
[[1, 2, 3, 4], [5, 6, 7], [8, 9, 10]]
这个代码示例中,split_list_by_percentage函数接受一个列表和一个百分比列表作为输入参数。它首先检查百分比是否总和为100,如果不是,则抛出一个ValueError异常。
然后,它计算出每个百分比对应的拆分点。例如,如果输入列表lst的长度为10,百分比为[40, 30, 30],那么拆分点将分别为[4, 7]。
接下来,函数使用一个循环根据拆分点将输入列表拆分成多个子列表,并将这些子列表添加到结果列表中。最后,将剩余的元素添加到最后一个子列表中,并返回结果列表。
这个示例代码可以用于按百分比拆分任何列表。只需将您自己的列表和百分比传递给split_list_by_percentage函数即可。
上一篇:按a、b分组 VS 按b、a分组
下一篇:按百分比调整表格列宽