Python如何生成每间隔3个元素取3个值的两组列表
Python生成指定规则列表的实现方案
方法1:列表推导式(无额外依赖,代码最简洁)
核心逻辑通过模运算判断数值在6个一组的分组中的位置,直接筛选生成目标列表:
# 可根据需求调整数值范围的最大值end end = 72 output1 = [num for num in range(1, end + 1) if (num - 1) % 6 < 3] output2 = [num for num in range(1, end + 1) if (num - 1) % 6 >= 3]
逻辑说明:每6个连续数值为一个循环分组,(num - 1) % 6 计算得到数值在组内的偏移量(取值0~5),偏移量为0、1、2的是组内前3个数值,归入output1;偏移量为3、4、5的是组内后3个数值,归入output2。
方法2:步长循环拼接(可读性高,方便调整规则)
如果后续需要修改取数/跳过的长度,推荐用该方案,修改成本更低:
end = 72 output1 = [] output2 = [] # 每次处理一个长度为6的分组 for start in range(1, end + 1, 6): output1.extend(range(start, start + 3)) output2.extend(range(start + 3, start + 6))
两种方案运行后得到的output1、output2完全匹配预期输出效果。
内容的提问来源于stack exchange,提问作者ssjss7
相关产品推荐
相关产品推荐

