目前,我已经制作了这段代码
def grid_maker(h,w):
grid = [[["-"] for i in range(w)] for i in range(h)]
grid[0][0] = ["o"]
print grid
>>>grid_maker(3,5) => [[['o'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']]]
Run Code Online (Sandbox Code Playgroud)
我想制作另一个函数,它将接收生成的2d数组并将其打印出来,使其采用以下格式:
o----
-----
-----
Run Code Online (Sandbox Code Playgroud)
但是,我不确定从哪里开始.
如果要使用结果grid_maker(),则必须使用return以下命令返回其结果:
def grid_maker(h, w):
grid = [["-" for i in range(w)] for i in range(h)]
grid[0][0] = "o"
return grid
Run Code Online (Sandbox Code Playgroud)
我修改了它,因为我不认为每个元素都必须在另一个元素中list.
要打印"网格",您可以遍历每一行,然后遍历每个元素:
def print_grid(grid):
for row in grid:
for e in row:
print e,
print
Run Code Online (Sandbox Code Playgroud)
输出:
print_grid(grid_maker(3, 5))
o - - - -
- - - - -
- - - - -
Run Code Online (Sandbox Code Playgroud)
如果你想"漂亮"打印你自己的每个子列表你的网格,你可以使用pprint:
>>> grid=[[['o'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']]]
>>> from pprint import pprint
>>> pprint(grid)
[[['o'], ['-'], ['-'], ['-'], ['-']],
[['-'], ['-'], ['-'], ['-'], ['-']],
[['-'], ['-'], ['-'], ['-'], ['-']]]
Run Code Online (Sandbox Code Playgroud)
它仍会将每个元素显示为列表,如您所定义的那样,如果您想将它们显示为字符串,则必须使用m.wasowski建议的连接.