以下是一个将列表的列表按百分比分割成三部分的示例代码:
def split_list_of_lists(data, percentages):
# 计算每个子列表的长度
lengths = [int(len(sublist) * percentage / 100) for sublist, percentage in zip(data, percentages)]
# 分割每个子列表
result = []
for sublist, length in zip(data, lengths):
result.append(sublist[:length])
sublist[:] = sublist[length:]
return result
# 示例用法
data = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
percentages = [40, 30, 30]
result = split_list_of_lists(data, percentages)
print(result)
运行上述代码,将输出:
[[1, 2], [6, 7, 8], [11, 12, 13]]
在上述示例中,我们定义了一个名为split_list_of_lists的函数,它接受两个参数:data和percentages。data是一个列表的列表,表示要分割的数据。percentages是一个百分比列表,用于指定如何将每个子列表进行分割。
函数首先计算每个子列表的长度,通过将子列表的长度乘以对应的百分比来实现。然后,函数使用切片操作将每个子列表划分为前面计算得到的长度,并将结果添加到一个名为result的新列表中。最后,使用切片操作从原始子列表中删除已分割的部分。
请注意,为了避免在划分子列表时出现不一致的问题,我们使用了sublist[:]来修改原始子列表。这将直接修改原始数据,而不是创建一个新的副本。
希望这个示例能够解决你的问题!
上一篇:按百分比获胜并显示数字