You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码为何全打印在一行?如何按行输出列表内容

问题解决:Python列表数据按行输出

你的代码之所以会把所有内容输出在同一行,是因为内层print语句用了end=' | ',替换了print默认的换行符(\n),而且外层循环没有额外添加换行操作,导致所有元素连续输出。

修改方案一:外层循环结束后手动换行

在外层的for循环里,每次打印完一行的所有元素后,调用一次无参数的print()来输出换行符:

lcolhead = ['ID', 'Name', 'Email']
lrow1 = [1, 'Jane Doe', 'janedoe@doemail.com']
lrow2 = [2, 'Jake Doe', 'jakedoe@doemail.com']
lrow3 = [3, 'Jane Fox', 'janefox@foxmail.com']

ltable1 = [lcolhead, lrow1, lrow2, lrow3]

for row in ltable1:
    for item in row:
        print(item, end=' | ')
    # 打印完当前行所有元素后换行
    print()

修改方案二:用字符串拼接简化代码

直接把每行的元素拼接成带分隔符的字符串,再打印(默认自带换行),这种写法更简洁:

lcolhead = ['ID', 'Name', 'Email']
lrow1 = [1, 'Jane Doe', 'janedoe@doemail.com']
lrow2 = [2, 'Jake Doe', 'jakedoe@doemail.com']
lrow3 = [3, 'Jane Fox', 'janefox@foxmail.com']

ltable1 = [lcolhead, lrow1, lrow2, lrow3]

for row in ltable1:
    # 将每行元素转为字符串后拼接,再加上末尾的 |
    print(' | '.join(map(str, row)) + ' | ')

两种方法都能实现你期望的输出效果:

ID | Name | Email |
1 | Jane Doe | janedoe@doemail.com |
2 | Jake Doe | jakedoe@doemail.com |
3 | Jane Fox | janefox@foxmail.com |

内容的提问来源于stack exchange,提问作者Jesse Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 17:05:52