如何将Python列表按间隔规则拆分为三个独立子列表
Python列表按规则拆分解决方案
核心逻辑
你需要的拆分规则是按原列表元素的索引对3取余的结果分组:索引从0开始计数,余0的元素归入第一个子列表,余1的归入第二个,余2的归入第三个。
最简实现(固定拆分3个子列表)
直接利用Python列表切片的步长特性即可实现,代码如下:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] b = a[::3] # 从索引0开始,每间隔3位取一个元素 c = a[1::3] # 从索引1开始,每间隔3位取一个元素 d = a[2::3] # 从索引2开始,每间隔3位取一个元素
运行后得到的b、c、d和你需要的结果完全一致。
通用实现(支持任意数量子列表拆分)
如果后续需要调整拆分的子列表数量,可以直接用下面的通用函数:
def split_list_by_group(raw_list, group_num): return [raw_list[i::group_num] for i in range(group_num)] # 调用示例 a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] b, c, d = split_list_by_group(a, 3)
修改group_num参数即可调整拆分的子列表数量,即使原列表长度不是分组数的整数倍,也能正常按规则分配元素。
内容的提问来源于stack exchange,提问作者Norbu Samdrup
相关产品推荐
相关产品推荐

