将 2D 坐标列表绘制到 2D 地图

问题描述 投票:0回答:2

[将 2D 坐标列表绘制到 2D 地图]

[这是我尝试将二维列表中的一组坐标映射到二维地图。每个坐标被指定为(y,x) y 和x 代表地图上的给定轴。地图只是一个由 0 组成的网格,坐标位置应该用“1”标记]

My code

[这是我的输出和预期输出,我不确定为什么模式会重复,我如何获得任何给定坐标的预期输出?]

Output

python arrays multidimensional-array mapping coordinates
2个回答
0
投票

要初始化二维数组,请使用它而不是您的代码:

map = [ [0]*5 for i in range(5)]

否则所有的线都会一样。

也请不要拍摄代码的照片。


0
投票

您的问题是按引用传递与按值传递:

a = [[0]]*10
print(a)
a[0][0]=10
print(a)
b = [[0] for _ in range(10)]
print(b)
b[0][0]=10
print(b)

在第一种情况(如何初始化列表)Python 是惰性的,它不是创建同一事物的 N 个副本,而是创建一次对象(我们称之为 LST)并将其引用 N 次传递给列表,这意味着修改任何内容N 个副本的结果会导致对 LST 的修改,而 LST 又会显示为对所有 N 个“副本”的修改。 在第二种情况下,你告诉 python 不,不要偷懒,实际上为我创建了 N 个副本(按值传递),因为我想修改它们。

© www.soinside.com 2019 - 2024. All rights reserved.