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
相关产品推荐
相关产品推荐

