首页 > 解决方案 > 如何复制数组元素

问题描述

我有一个再次包含数组的数组。现在我想在我的主数组中让每个内部数组两次。

不幸的是,当我按照我的方式进行操作时,我弄乱了索引并且无法修改数组中的特定元素(例如Payliketable[2][5]:),因为那时有很多次。

如何复制每个内部数组,同时给每个数组自己的“索引”?

i = 1
while i < len(PaylikeTable):
        PaylikeTable.insert(i,PaylikeTable[i])
        i += 2

如前所述,数组“Payliketable”再次由数组组成。

标签: pythonarrays

解决方案


列表是可变的。有关mutables 和 immutables的更多信息,请参见此处。

要创建一个可变的副本(而不仅仅是对其的引用),最好的方法是使用copy模块。

import copy

PaylikeTable = [[1, 2, 3], [2, 4, 6], [5, 6, 2]]

i = 0
lpt = len(PaylikeTable)*2
while i < lpt:
    PaylikeTable.insert(i, copy.deepcopy(PaylikeTable[i]))
    i += 2

print(PaylikeTable) #the doubled list
#[[1, 2, 3], [1, 2, 3], [2, 4, 6], [2, 4, 6], [5, 6, 2], [5, 6, 2]]

PaylikeTable[3][1] = 99

print(PaylikeTable) #only element 3, 1 is edited.
#[[1, 2, 3], [1, 2, 3], [2, 4, 6], [2, 99, 6], [5, 6, 2], [5, 6, 2]]

推荐阅读