我最近开始学习 Python,我在本教程和一本名为Automate The Boring Stuff With Python的书之间交替使用。我觉得这本书很容易理解,练习也很有趣。我刚刚解决了一个特别的问题,但老实说,我对我的答案并不满意。在问题中,给出一个网格如下:grid = [['.', '.', '.', '.', '.', '.'], ['.', '0', '0', '.', '.', '.'], ['0', '0', '0', '0', '.', '.'], ['0', '0', '0', '0', '0', '.'], ['.', '0', '0', '0', '0', '0'], ['0', '0', '0', '0', '0', '.'], ['0', '0', '0', '0', '.', '.'], ['.', '0', '0', '.', '.', '.'], ['.', '.', '.', '.', '.', '.']]仅使用循环,然后需要产生以下输出:..00.00...0000000..0000000...00000.....000.......0....我对这个问题的解决方案(有效)如下:for y in range(0,len(grid[0])): for x in range(0, len(grid)): print(grid[x][y], end='') print()我的问题是grid[0]。我试图概括代码以适应网格中列表具有不同值的情况,但失败了。我的问题,因此,这是我怎么能检索len的电网[0]一般变量方面?换句话说,如何在列表中检索列表的长度?
1 回答

江户川乱折腾
TA贡献1851条经验 获得超5个赞
例如取所有内容列表的长:
>>> grid = [['.', '.', '.', '.', '.', '.'],
... ['.', '0', '0', '.', '.', '.'],
... ['0', '0', '0', '0', '.', '.'],
... ['0', '0', '0', '0', '0', '.'],
... ['.', '0', '0', '0', '0', '0'],
... ['0', '0', '0', '0', '0', '.'],
... ['0', '0', '0', '0', '.', '.'],
... ['.', '0', '0', '.', '.', '.'],
... ['.', '.', '.', '.', '.', '.']]
>>>
>>> max(map(len, grid))
6
顺便说一句,解决这个问题的pythonic方法(没有循环)看起来像这样list(zip(*grid)):
>>> for l in zip(*grid):
... print("".join(l))
...
..00.00..
.0000000.
.0000000.
..00000..
...000...
....0....
添加回答
举报
0/150
提交
取消