求助:Python实现循环生成指定键值序列的正确代码
问题描述
需要编写Python代码生成如下格式的输出:
0 460, 1 3600, 2 2486, 3 460 ,4 3600, 5 2486, 6 460 ....
要求上述数值序列(460、3600、2486)循环生成237次。以下是编写的错误代码,输出不符合预期:
a = 0 for i in range(238): a = 460 print(i, a) a = 3600 print(i, a) a = 2486 print(i, a)
修正方案
原代码的核心问题是:每次循环重复使用同一个i值输出三次,导致序号重复,而预期是序号从0开始连续递增,每3个序号对应一轮数值循环。
修正后的代码
# 定义循环的数值序列 cycle_values = [460, 3600, 2486] # 计算总条目数:237次循环 × 3个数值 total_entries = 237 * 3 # 生成所有条目字符串 output_segments = [] for index in range(total_entries): # 通过取模循环获取对应数值 current_value = cycle_values[index % 3] output_segments.append(f"{index} {current_value}") # 用", "连接所有条目并打印 print(", ".join(output_segments))
更简洁的写法
cycle_values = [460, 3600, 2486] print(", ".join([f"{i} {cycle_values[i%3]}" for i in range(237*3)]))
说明
- 序号从0开始连续递增,共生成711个条目(237×3)
- 通过
index % 3实现数值序列的循环选取 - 最终将所有条目拼接成一行输出,完全匹配预期格式
内容的提问来源于stack exchange,提问作者Alex Alexe
相关产品推荐
相关产品推荐

