You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python数组引用问题:如何让游戏中的三个数组独立修改?

问题原因

在Python中,直接将列表赋值给多个变量(比如originlevel = matrix),本质是让这些变量指向同一个列表对象,并非创建新的独立副本。所以修改其中任何一个变量的元素,都会同步影响所有指向该对象的变量。

简便的独立复制方法

因为你提到matrix是一维数组(非矩阵),以下几种方法都能快速创建独立副本,修改其中一个不会影响另外两个:

  • 切片复制(最常用的简便写法):
    originlevel = matrix[:]
    
  • list()构造函数:
    originlevel = list(matrix)
    
  • copy模块的浅拷贝:
    先导入copy模块,再使用copy.copy()方法:
    import copy
    originlevel = copy.copy(matrix)
    
修改后的代码示例
def Player(matrix, width):
    originlevel = matrix[:]
    emptylevel = matrix[:]
    emptylevel[PlayerPositionFind(matrix)] = "#"
    level = matrix[:]

这些方法都能让三个变量各自指向独立的列表对象,后续修改任意一个都不会影响另外两个。

内容的提问来源于stack exchange,提问作者Plush Loler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:05:35