python - 复制列表上的 python int 值?

标签 python python-2.7

我正在尝试解决一个问题,要求我将 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/

相关文章:

python - 使用 Python 3.4 的 Scrapy 在终端中失败

python - 相当于 Go 中的 Python string.format?

python - 使用python将字符串转换为格式

python - 为什么我的 python 包没有发现用于单元测试的类?

python-2.7 - 如何向 scrapy 添加自定义蜘蛛/下载中间件

python - 如何控制条形图中条形之间的距离

python - 无法在单元测试中授权

Python - 并行化 2D 掩码数组的 python 循环?

python - 从 .txt 文件创建目录

c - 在 GCC 4.8 上构建 Python (2.7) 模块失败