有时候我们需要将一个列表按照指定的列表长度和数量拆分成多个子列表,以便进行后续处理。
def uneven_split_list(lst, sublist_len):
"""
将列表拆分成不同长度的子列表
:param lst: 待拆分列表
:param sublist_len: 设定子列表不同长度的列表
:return: 拆分后的子列表组成的列表
"""
if len(lst) != sum(sublist_len):
raise ValueError("需拆分列表元素数量与设定拆分后子列表元素总数量不一致")
result = []
start = 0
for i in range(len(sublist_len)):
end = start + sublist_len[i]
result.append(lst[start:end])
start = end
return result
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
sublist_len = [1, 2, 1, 3, 2]
lst2 = uneven_split_list(lst, sublist_len)
print(sublist_len)
print(lst2)
# 输出
# [1, 2, 1, 3, 2]
# [[1], [2, 3], [4], [5, 6, 7], [8, 9]]