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

Python列表旋转输出实现求助:新手结果不符问题

解决Python Grid转置输出问题

嘿,我一眼就看出问题啦!你现在是按行打印grid里的内容,但你想要的输出是把grid的列拼接成字符串后逐行打印——这本质上就是矩阵转置的需求。

先看你的grid(根据你给出的片段和输出反推,完整的grid应该是这样):

grid = [
    ['.', '.', '.', '.', '.', '.'],
    ['.', 'O', 'O', '.', '.', '.'],
    ['O', 'O', 'O', 'O', '.', '.'],
    ['O', 'O', 'O', 'O', 'O', '.'],
    ['.', 'O', 'O', 'O', 'O', 'O'],
    ['O', 'O', 'O', 'O', 'O', '.'],
    ['O', 'O', 'O', 'O', '.', '.'],
    ['.', 'O', 'O', '.', '.', '.'],
    ['.', '.', '.', '.', '.', '.']
]

你当前的代码应该是直接遍历每行并拼接打印,类似这样:

for row in grid:
    print(''.join(row))

这自然会输出每行的内容,也就是你现在得到的结果。

正确的解决方案

要得到目标输出,我们需要把grid转置(行变列,列变行),Python里用zip(*grid)就能轻松实现这个操作。然后对转置后的每一行(原grid的列)拼接成字符串打印:

for col in zip(*grid):
    print(''.join(col))

原理解释

zip(*grid)是Python里的实用小技巧:*grid会把grid的每一行拆解成独立的参数传给zip函数,zip会依次从每个行里取第1个元素、第2个元素……组成新的元组,这些元组就是转置后的行(对应原grid的列)。之后用''.join(col)把元组里的字符拼接成字符串,打印出来就完全符合你的预期啦!

运行这段代码后,你就能得到想要的输出:

..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:08:14