正确打印包含字符串的列表

2024-03-28 09:38:51 发布

您现在位置:Python中文网/ 问答频道 /正文

抱歉,如果这是一个反复出现的问题,我是一个初学者,不知道如何制定这个问题在谷歌。你知道吗

在这里我开始我的脚本(我知道它可以更好地优化,但我需要它是这样的):

Value_grid = ["X"]*50
Ui_grid = "[",Value_grid[1],"][",Value_grid[2],"][",Value_grid[3],"][",Value_grid[4],"][",Value_grid[5],"][",Value_grid[6],"]\n[",Value_grid[7],"][",Value_grid[8],"][",Value_grid[9],"][",Value_grid[10],"][",Value_grid[11],"][",Value_grid[12],"]\n[",Value_grid[13],"][",Value_grid[14],"][",Value_grid[15],"][",Value_grid[16],"][",Value_grid[17],"][",Value_grid[18],"]\n[",Value_grid[19],"][",Value_grid[20],"][",Value_grid[21],"][",Value_grid[22],"][",Value_grid[23],"][",Value_grid[24],"]\n[",Value_grid[25],"][",Value_grid[26],"][",Value_grid[28],"][",Value_grid[29],"][",Value_grid[30],"][",Value_grid[31],"]"

好的,所以我想,当我打印“Ui\u grid”时,有这样的东西:

[ X ][ X ][ X ][ X ][ X ][ X ]
[ X ][ X ][ X ][ X ][ X ][ X ]
[ X ][ X ][ X ][ X ][ X ][ X ]
[ X ][ X ][ X ][ X ][ X ][ X ]
[ X ][ X ][ X ][ X ][ X ][ X ]

但当我这么做的时候,它会返回:

('[', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', ']\n[', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', ']\n[', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', ']\n[', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', ']\n[', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', '][', 'X', ']')

只是打印我放在“Ui\ U网格”里的东西,没用。否则,我可以:

print("[",Value_grid[1],"][",Value_grid[2],"][",Value_grid[3],"][",Value_grid[4],"][",Value_grid[5],"][",Value_grid[6],"]\n[",Value_grid[7],"][",Value_grid[8],"][",Value_grid[9],"][",Value_grid[10],"][",Value_grid[11],"][",Value_grid[12],"]\n[",Value_grid[13],"][",Value_grid[14],"][",Value_grid[15],"][",Value_grid[16],"][",Value_grid[17],"][",Value_grid[18],"]\n[",Value_grid[19],"][",Value_grid[20],"][",Value_grid[21],"][",Value_grid[22],"][",Value_grid[23],"][",Value_grid[24],"]\n[",Value_grid[25],"][",Value_grid[26],"][",Value_grid[28],"][",Value_grid[29],"][",Value_grid[30],"][",Value_grid[31],"]")

为了得到我想要的,但我需要尽可能小的文件大小,并且我需要多次重复使用此打印,而且使用函数似乎不是最合适的方法:/

谢谢你让我花点时间来解决这个小问题。你知道吗


Tags: 方法函数脚本网格uivalue时间grid
2条回答

相反,函数在我看来是个好主意:

def printGrid(x, y):
    for i in range(x):
        print('[ X ]'*y)

提供:

>>> printGrid(5, 6)
[ X ][ X ][ X ][ X ][ X ][ X ]
[ X ][ X ][ X ][ X ][ X ][ X ]
[ X ][ X ][ X ][ X ][ X ][ X ]
[ X ][ X ][ X ][ X ][ X ][ X ]
[ X ][ X ][ X ][ X ][ X ][ X ]

不使用itertools.islice嵌套循环的简单解决方案:

def grid(values, rows, cols, fmt="[ {} ]"):
    v = iter(values)
    return '\n'.join(' '.join(map(fmt.format, islice(v,cols))) for g in range(rows))

print(grid(['X']*50, 5,6))

印刷品:

[ X ] [ X ] [ X ] [ X ] [ X ] [ X ]
[ X ] [ X ] [ X ] [ X ] [ X ] [ X ]
[ X ] [ X ] [ X ] [ X ] [ X ] [ X ]
[ X ] [ X ] [ X ] [ X ] [ X ] [ X ]
[ X ] [ X ] [ X ] [ X ] [ X ] [ X ]

相关问题 更多 >