Arrays 附加到二维数组的特定元素
我有一个列表Arrays 附加到二维数组的特定元素,arrays,python-3.x,list,Arrays,Python 3.x,List,我有一个列表arr包含n个空列表和另一个列表索引,整数范围为0到n-1 n = 4 e = [] arr = [e]*(n) indices = [0,2,3,0,2,1,3] 我想做的是获取索引中的每个元素I,并将一些变量附加到arr的第I个元素。代码如下所示 var = 1 for i in indices: arr[i].append(var) 我正在导出的arr将在其第一个列表中有两个元素,一个在其第二个列表中,等等。但
arr
包含n个空列表和另一个列表索引
,整数范围为0到n-1
n = 4
e = []
arr = [e]*(n)
indices = [0,2,3,0,2,1,3]
我想做的是获取索引中的每个元素I
,并将一些变量附加到arr
的第I个元素。代码如下所示
var = 1
for i in indices:
arr[i].append(var)
我正在导出的arr
将在其第一个列表中有两个元素,一个在其第二个列表中,等等。但是,当我打印arr
时,我得到以下信息
[[1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1]]
尝试按如下方式更改第一个块:
n = 4
arr = [[] for i in range(n)]
indices = [0,2,3,0,2,1,3]
现在一切都好了
更多信息
当您将arr
定义为arr=[e]*(n)
时,arr中的每个列表都指向内存中的相同位置(即e
)。因此,在arr
中更改一个元素将更改所有元素。但是,当您将arr定义为范围(n)中的i的arr=[]]
时,元素将是独立的