我已经使用了一种反转数组对角线的算法。我正在尝试将列表复制a
到b
不可变的。
我尝试使用“切片”( b = a[:]
)、列表理解,b = a.copy()
但唯一有效的是b = copy.deepcopy(a)
. 有没有其他方法可以获得副本?
import copy
a = [[1,2,3],[4,5,6],[7,8,9]]
b = copy.deepcopy(a)
d = b
c = []
h = len(a[0])-1
x_ptrocar = []
for i in range(len(a)-1):
if i == h:
break
else:
x_ptrocar.extend([[i,i,h,h],[i,h,h,i],[h,h,i,i],[h,i,i,h]])
h -=1
for l in range(len(x_ptrocar)):
for m in range(0,4):
y_original = x_ptrocar[l][3]
y_ptrocar = x_ptrocar[l][1]
x_original = x_ptrocar[l][2]
x_ptrocarr = x_ptrocar[l][0]
a[x_original][y_original]=b[x_ptrocarr][y_ptrocar]
print(a)
我希望输出为[[1,2,3],[4,5,6],[7,8,9]]
,[[9,2,7], [4,5,6],[3,8,1]]
并且它适用于copy.deepcopy
,但不适用于我能找到的任何其他方法。