如何创建一个二维数组并为其添加值?

How to create a two dimensional array and add values to it?

我正在尝试欧拉计划问题 10。

这道题要求你将水平、垂直或对角线相连的所有相邻数字相乘。这是一个 link 的问题。

基本上,您将如何创建和定义二维数组?

需要二维数组吗?

我可以用更好的方法吗?

Python 没有像 C 中那样的数组,除非您安装 Numpy 库(如果您正在尝试解决数学和数值处理问题,我建议您安装它)。 Numpy 不是解决这个问题所必需的。 如果你想要一个二维数组,你可以使用嵌套列表:每一行都是一个列表,就像这样:

    board = [[10, 12, 5, 7, ...], [24, 3, 7, 8, ...] ... ]

然后您可以将数字索引为 board[0][3],这将是 7(第一行,第四个元素)。您可以在 Python 教程中找到更多相关信息。 对于那个特定的问题,您可能甚至不需要二维数组。您知道电路板的尺寸,因此您可以使用线性阵列(例如,所有行在 400 个元素的阵列中展平)。然后只需添加你就可以在任何方向索引;添加+1/-1 将得到相邻的元素(同一行),添加+20/-20 将得到next/previous 行元素;加 21 将沿对角线移动,等等。 您需要注意边界:问题表述中没有明确说明的一件事是边界处发生的情况,即您是结束还是简单地停下来?应该是后者。