我是 Python 新手,一直在尝试解决一些编程问题以更好地掌握这门语言。到目前为止,我已经在https://www.python.org/doc/essays/graphs/阅读了 Guido 的文章。这有助于我了解如何使用图表。但是,竞争性编程问题大多具有二维网格:
U..X
..X.
X..X
..X.
我如何在 Python 中表示它们?列表列表是一个很好的表示吗?有没有更好或更“Pythonic”的方法?谢谢。
我是 Python 新手,一直在尝试解决一些编程问题以更好地掌握这门语言。到目前为止,我已经在https://www.python.org/doc/essays/graphs/阅读了 Guido 的文章。这有助于我了解如何使用图表。但是,竞争性编程问题大多具有二维网格:
U..X
..X.
X..X
..X.
我如何在 Python 中表示它们?列表列表是一个很好的表示吗?有没有更好或更“Pythonic”的方法?谢谢。
列表列表通常适用于网格的大多数用途,但如果您有兴趣使用二维数组做更高级的事情,您可能想要研究NumPy。NumPy 是用 C 实现的,效率很高;它的功能比您要寻找的要多得多,但无论如何都值得一看。
在 Python 中,嵌套列表通常是要走的路——它允许轻松访问“网格”上的一个点,前提是索引是已知的—— grid[y][x]
。
以网格形式打印它们也很简单:
for i in grid:
print i