python - (Python) For 循环会影响数组的所有子数组,尽管只引用了第一个子数组 - 如何避免这种情况
问题描述
我正在编写一个函数,它通过一个二维的零列表(例如 5x5)并将其中一些标记为 1。它遵循一种模式,并且可以在两者之间改变方向。这是代码的一些片段(下面的 4 行是相关的,上面的其余部分仅用于上下文):
def spiralize(size):
spiral = [[0]*size]*size
j = size -1
steps = [j]
while j > 0:
steps.append(j)
steps.append(j)
j -= 2
if size%2 != 0: steps.append(1)
direction = "right"
pointer = [0,0]
for i in steps:
if direction == "right":
for k in range(0,i):
spiral[pointer[0]][pointer[1]] = 1
pointer[1] += 1
我希望在第二个 for 循环之后,一个 5x5 数组看起来像这样:
[[1,1,1,1,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0]])
但是,它看起来像这样:
[[1,1,1,1,0],
[1,1,1,1,0],
[1,1,1,1,0],
[1,1,1,1,0],
[1,1,1,1,0]])
我找不到原因,为什么所有其他子数组都以同样的方式受到影响。在整个循环中指针[0] = 0。数据结构有什么我不知道的吗?
非常感谢你提前。
解决方案
推荐阅读
- azure - 如何使用 Azure 数据工厂复制活动提取电子邮件附件?
- python - 如何将包含键的字典和包含数据的列表中的数据保存为 csv 文件到各个键
- python - csv读取慢python的速度
- python - 找不到满足 pyimagesearch 要求的版本(来自版本:)找不到 pyimagesearch 的匹配分布
- python-3.x - 导入python模块时出错
- javascript - 如何在 Tabulator 中组合冻结列和可变表格高度?
- php - 未捕获的 DOMException:无法在“元素”上执行“setAttribute”:“1”不是 Laravel 刀片模板中的有效属性名称
- php - php foreach 中的 json 循环在 5 次通过后中断
- python - OpenCV:查找具有不同背景的对象的轮廓
- azure - 为可靠字典中的单个条目获取多个 Service Fabric 可靠字典通知