我正在尝试解决一个问题,要求我将 NxN 矩阵旋转 90 度。我已经写好了代码。但是,我遇到了问题,因为 python 正在交换引用而不仅仅是值。有人可以帮我弄清楚如何交换整数对象的值而不是交换引用吗?我在下面包含了我的代码:
def rotate90(image):
print image
n = len(image)
for i in range(n):
for j in range(n):
hold = image[i][j]
hold2 = image[j][n-i-1]
image2[i][j] = hold2
image2[j][n-i-1] = hold
return image
print rotate90([[1,2,3],[4,5,6],[7,8,9]])
最佳答案
此函数将旋转 NxN 列表列表
def rotate(m):
return [list(reversed(ll)) for ll in zip(*m)]
在 2.7 和 3.4 中应该保持不变(处理生成器工作方式的差异)
使用zip(*m)
解压列表的原始列表,并将每个结果列表作为单独的参数传递给zip。因此如下
l = [[1,2,3],[4,5,6],[7,8,9]]
zip(*l)
相当于
zip([1,2,3], [4,5,6], [7,8,9])
关于python - 复制列表上的 python int 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27552767/