如何生成指定序列1,2,2,3,4,4,5?现有Python代码输出异常求解
解决方法:生成目标序列1,2,2,3,4,4,5
先明确目标序列的规律:值按1、2、3、4、5递增,其中第2、4个值重复2次,第1、3、5个值仅出现1次,最终组合成[1,2,2,3,4,4,5]。
你的代码输出不符合预期,核心问题是处理重复长度的组时,没有让同一个值重复对应次数,而是逐个递增取值——比如你输出里的3,3,实际应该是在值为2的时候完成两次重复。
以下是实现目标序列的极简Python代码:
result = [] current_num = 1 # 对应每个值的重复次数:1次、2次、1次、2次、1次 repeat_counts = [1, 2, 1, 2, 1] for count in repeat_counts: result.extend([current_num] * count) current_num += 1 print(",".join(map(str, result)))
运行后会输出:1,2,2,3,4,4,5,完全匹配需求。
如果要支持生成更长的序列(按1、2交替重复次数),可以用循环动态切换重复次数:
result = [] current_num = 1 repeat = 1 # 初始重复次数为1,之后交替切换 # 生成到数字5,循环5次 for _ in range(5): result.extend([current_num] * repeat) repeat = 2 if repeat == 1 else 1 current_num += 1 print(",".join(map(str, result)))
你可以对照自己的代码检查:是不是在处理重复组的过程中,错误地让current_num在组内递增,而非保持同一个值直到完成当前组的长度。
内容的提问来源于stack exchange,提问作者stuck overflawed
相关产品推荐
相关产品推荐

