如何引用二维数组中的特定元素 python
How to reference a specific element in a 2D array python
我正在尝试创建一个二维网格来模拟一个世界,我决定使用一个二维数组,每个网格正方形一个元素。它是 40x40,我用它来设置网格:
gridy = ["grass" for i in range(0,40)]
gridx = [gridy for i in range(0,40)]
问题是我不知道如何引用/更改此数组中的单个元素(例如坐标为 (5,5) 的网格图块)
这是我到目前为止使用的:
gridx[5][5] = "water"
程序应随机放置水,随机放置食物。
但是,当我 运行 程序时,网格看起来像这样:
broken grid
目前你看不到整个网格,因为它对于 window 来说太大了(稍后修复),但你明白了。
似乎不是将每个图块作为一个元素,而是将整行作为一个元素。
我怎样才能只引用一个图块?
谢谢
我建议查看 numpy :)
它速度很快,您可以轻松地进行二维数组操作。 (我的意思是 比下面的分配值更 ,这当然也很容易用列表实现)
import numpy as np
x = np.zeros((40, 40)) # create array of size 40 x 40
x[5][5] = 1
其中 0 代表草,1 代表水。您还可以更改数组的类型,以便能够用字符串填充它。
也就是说,没有 numpy 的方法也应该有效。
事实上,你的命令非常好。
gridy = ["grass" for i in range(40)]
gridx = [gridy for i in range(0,40)]
gridx[5][5] = "water" # works :)
print(gridx[5][5]) # >> prints: "water"
附带说明一下,值得注意的是 range(0, 40)
与 range(40)
相同
我正在尝试创建一个二维网格来模拟一个世界,我决定使用一个二维数组,每个网格正方形一个元素。它是 40x40,我用它来设置网格:
gridy = ["grass" for i in range(0,40)]
gridx = [gridy for i in range(0,40)]
问题是我不知道如何引用/更改此数组中的单个元素(例如坐标为 (5,5) 的网格图块) 这是我到目前为止使用的:
gridx[5][5] = "water"
程序应随机放置水,随机放置食物。 但是,当我 运行 程序时,网格看起来像这样: broken grid
目前你看不到整个网格,因为它对于 window 来说太大了(稍后修复),但你明白了。
似乎不是将每个图块作为一个元素,而是将整行作为一个元素。 我怎样才能只引用一个图块?
谢谢
我建议查看 numpy :) 它速度很快,您可以轻松地进行二维数组操作。 (我的意思是 比下面的分配值更 ,这当然也很容易用列表实现)
import numpy as np
x = np.zeros((40, 40)) # create array of size 40 x 40
x[5][5] = 1
其中 0 代表草,1 代表水。您还可以更改数组的类型,以便能够用字符串填充它。
也就是说,没有 numpy 的方法也应该有效。 事实上,你的命令非常好。
gridy = ["grass" for i in range(40)]
gridx = [gridy for i in range(0,40)]
gridx[5][5] = "water" # works :)
print(gridx[5][5]) # >> prints: "water"
附带说明一下,值得注意的是 range(0, 40)
与 range(40)