python 二维矩阵翻转

二维矩阵翻转

# N * N的二维矩阵 
# 沿上下中线翻转
# 沿左右中线翻转
# 沿-45度对角线翻转
# 沿45度对角线翻转

matrix3 = [
			[1, 2, 3, 4, 5], 
		    [6, 7, 8, 9, 10], 
			[11, 12, 13, 14, 15], 
			[16, 17, 18, 19, 20], 
			[21, 22, 23, 24, 25]
		]
matrix1 = [
			[1, 2, 3], 
			[4, 5, 6], 
			[7, 8, 9]
		]
matrix2 = [
		[1, 2, 3, 4], 
		[5, 6, 7, 8], 
		[9, 10, 11, 12], 
		[13, 14, 15, 16]
]


# 沿上下,中线翻转
def sx_zh(matrix):
    length = len(matrix)
    for j in range(length):
        for i in range(length//2):
        	# 根据坐标点找规律并交换位置
            matrix[j][i], matrix[j][length-i-1] = matrix[j][length-i-1], matrix[j][i]  
    return matrix


# 沿左右,中线翻转
def zy_zh(matrix):
    length = len(matrix)
    for j in range(length//2):
        for i in range(length):
        	# 根据坐标点找规律并交换位置
            matrix[j][i], matrix[length-j-1][i] = matrix[length-j-1][i], matrix[j][i]
    return matrix


# 沿45度对角线翻转
def dui_45_xian(matrix):
    length = len(matrix)
    n = length - 1
    m = n
    for j in range(n):
        for i in range(m):
            # 根据坐标点找规律并交换位置
            matrix[j][i], matrix[n-i][n-j] = matrix[n-i][n-j], matrix[j][i]
        m -= 1
    return matrix


# 沿-45度对角线翻转
def fu_dui_45_xian(matrix):
    n = len(matrix)
    m = 1
    for j in range(n):
        for i in range(m, n):
            # 根据坐标点找规律并交换位置
            matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
        m += 1
    return matrix


if __name__ == '__main__':
    print("sx_zh: matrix1", sx_zh(matrix1))
    print("sx_zh: matrix2", sx_zh(matrix2))
    print("sx_zh: matrix3", sx_zh(matrix3))
    print("zy_zh: matrix1", zy_zh(matrix1))
    print("zy_zh: matrix2", zy_zh(matrix2))
    print("zy_zh: matrix3", zy_zh(matrix3))
    print("dui_45_xian: matrix1", dui_45_xian(matrix1))
    print("dui_45_xian: matrix2", dui_45_xian(matrix2))
    print("dui_45_xian: matrix3", dui_45_xian(matrix3))
    print("fu_dui_45_xian: matrix1", fu_dui_45_xian(matrix1))
    print("fu_dui_45_xian: matrix2", fu_dui_45_xian(matrix2))
    print("fu_dui_45_xian: matrix3", fu_dui_45_xian(matrix3))

result:

sx_zh: matrix1 [[3, 2, 1], [6, 5, 4], [9, 8, 7]]
sx_zh: matrix2 [[4, 3, 2, 1], [8, 7, 6, 5], [12, 11, 10, 9], [16, 15, 14, 13]]
sx_zh: matrix3 [[5, 4, 3, 2, 1], [10, 9, 8, 7, 6], [15, 14, 13, 12, 11], [20, 19, 18, 17, 16], [25, 24, 23, 22, 21]]
zy_zh: matrix1 [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
zy_zh: matrix2 [[16, 15, 14, 13], [12, 11, 10, 9], [8, 7, 6, 5], [4, 3, 2, 1]]
zy_zh: matrix3 [[25, 24, 23, 22, 21], [20, 19, 18, 17, 16], [15, 14, 13, 12, 11], [10, 9, 8, 7, 6], [5, 4, 3, 2, 1]]
dui_45_xian: matrix1 [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
dui_45_xian: matrix2 [[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]]
dui_45_xian: matrix3 [[1, 6, 11, 16, 21], [2, 7, 12, 17, 22], [3, 8, 13, 18, 23], [4, 9, 14, 19, 24], [5, 10, 15, 20, 25]]
fu_dui_45_xian: matrix1 [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
fu_dui_45_xian: matrix2 [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
fu_dui_45_xian: matrix3 [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]]
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶知秋的BLOG

创作不易 请多多关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值