如何让Python多个range循环的输出按列(横向)展示?
实现多循环同位置元素的列状输出
正确解法
你可以使用zip()函数同时遍历多个序列的对应元素,代码如下:
for a, b, c in zip(range(1,6), range(1,6), range(1,6)): # 使用<4格式化每个元素占4个字符宽度,实现列对齐 print(f'{a:<4}{b:<4}{c}')
如果三个循环遍历的是同一个序列,也可以简化成更简洁的写法:
for num in range(1,6): print(f'{num:<4}{num:<4}{num}')
问题原因说明
- 你原来的三个独立
for循环是依次执行的,所以会先输出第一个循环的所有数值,再输出第二个、第三个,导致结果纵向堆叠。 - 你尝试的
for [a-c]或(a-c)写法不符合Python的for循环语法,for循环要求后面跟可迭代对象(比如列表、range、zip对象等),这种写法不是合法的可迭代对象,因此会报错。
输出效果
运行上述代码后,会得到你期望的列状格式:
1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
内容的提问来源于stack exchange,提问作者Peter N
相关产品推荐
相关产品推荐

