Python实现循环移位数字序列打印图案的最优方法是什么?
Python数字打印图案优化方案
你要实现的循环序列图案,核心逻辑是每行对基础序列[1,2,3,4,5]做循环左移操作,优化实现如下:
方案1:列表切片实现(可读性最高)
n = 6 # 预先生成基础序列 base_seq = list(range(1, n)) for offset in range(n-1): # 切片直接完成循环左移,拼接后一次性打印 print(' '.join(map(str, base_seq[offset:] + base_seq[:offset])))
优化点说明:
- 仅需1层循环,去掉原代码中嵌套的while循环和
x、countj等冗余中间变量,逻辑清晰易维护 - 利用Python原生切片特性实现循环移位,不用手动判断边界补数,出错概率更低
- 每行仅调用1次
print,替代原代码每行多次打印的操作,执行效率更高
方案2:数学模运算实现(不用预生成序列)
如果不想提前生成基础列表,也可以用模运算直接计算每个位置的数值:
n = 6 for i in range(1, n): line = [str((i + k -2) % (n-1) + 1) for k in range(n-1)] print(' '.join(line))
内容的提问来源于stack exchange,提问作者Pallab Tewary
相关产品推荐
相关产品推荐

