【Python】将4*4数组旋转90度新数组

需求:将一个4*4的数组90度旋转生成新的4*4数组

原来的4*4数组:
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3]
90度旋转后的4*4数组:
[0, 0, 0, 0]
[1, 1, 1, 1]
[2, 2, 2, 2]
[3, 3, 3, 3]

图解过程:

第一步:

第二步:

第三步:

代码如下:

 1 # 初始化一个4*4的数组
 2 array =[ [col for col in range(4)] for row in range(4)]
 3 # 打印看看数组的样子
 4 for row in array:
 5     print(row)
 6 # 大循环:通过enumerate函数找到array的行索引和行数
 7 for r_index,row in enumerate(array):
 8     # 小循环
 9     for c_index in range(r_index,len(row)):
10         # 将每次循环中的第一列的值存入临时变量temp
11         temp = array[c_index][r_index]
12         # 将每次循环中的第一行的值替换给每次循环中第一列的值
13         array[c_index][r_index] = array[r_index][c_index]
14         # 将之前存入临时变量temp的值替换给每次循环中的第一行的值
15         array[r_index][c_index] =temp
16     print(‘-------------------‘)
17     for r in array:print(r)

换一个方式实现:

1 # 初始化一个4*4的数组
2 array2 =[ [col for col in range(4)] for row in range(4)]
3 for i in range(len(array2)):
4     array_new = [array2[i][i] for row in range(4)]
5     print(array_new)
时间: 2024-11-16 20:08:30

【Python】将4*4数组旋转90度新数组的相关文章

day4 二维数组旋转90度

二维数组的旋转其实就是数组里面的元素对调的情况:下面有一个4×4的二维数组,[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]],现在要求把二维数组转化为下列形式,[[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]].下面来看一下流程图: 流程图: 流程图如上面所示,就是进行简单的互换而已,下面我们来用代码实现行列互换: data = [[i for i in range(4)

将一个4X4的数组进行逆时针旋转90度后输出,要求原数组数据随机输入

//将一个4X4的数组进行逆时针旋转90度后输出,要求原数组数据随机输入 #include<stdio.h> int main() { int a[4][4],b[4][4],i,j;//a存放原是数组数据,b存放旋转后的数组数据 printf("please input 16 number:"); for(i=0;i<4;i++) for(j=0;j<4;j++) { scanf("%d",&a[i][j]); b[3-j][i]=

python-二维数组实现90度旋转

本篇主要介绍了对一个N*N的数组,如果进行90度的旋转 首先,定义一个一维数组很简单,如下: a = [i for i in range(10)] print(a) -----结果----- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 此写法与下面的写法是相同的效果: a = [] for i in range(10): a.append(i) print(a) -----结果----- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 那么二维数组应该如何进行创建呢

二维数组(矩阵)之将矩阵旋转90度

将矩阵旋转90度: 题目描述: 例如将一个5*5的矩阵顺时针旋转90度:旋转前 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 选转后: 21     16      11       6

矩阵旋转90度(keep it up)

一张图像表示成NxN的矩阵,图像中每个像素是4个字节,写一个函数把图像旋转90度. 你能原地进行操作吗?(即不开辟额外的存储空间) 这个题第一感觉就是一次交换矩阵的元素: 比如 3*3 矩阵 1 2 3 4 5 6 7 8 9 先处理第一行,一次逆时针旋转四个元素,下面是二次做的 3 2 9          3 6 9 4 5 6          2 5 8 1 8 7          1 4 7 第一次         第二次 如果是5*5的矩阵 1   2   3   4   5 6

leetcode&mdash;&mdash;Rotate Image(二维数组顺时针旋转90度)

题目: You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). Follow up: Could you do this in-place? 分析: 二维数组a[n][n]顺时针旋转90度,要解决这个问题,无疑,第一件事儿就是找规律. 当n=1时,不用动了. 当n=2时, 旋转之后变为 有: a[0][0] = a[1][0] a[1][0] = a[1

将图像旋转90度

题目:给定一幅由N*N矩阵表示的图像,其中每个像素的 大小为4字节,编写一个方法,将图像旋转90度.不占用额外内存空间能否做到? 那么,该如何交换这四条边?一种做法是把上面复制到一个数组中,然后将左边移到上边,下边移到到左边,等等.这需要占用O(N)内存空间.但实际上没有必要, 更好的做法是按索引一个一个进行交换.具体做法如下: for i = 0 to n temp = top[i]; top[i] = left[i]; left[i] = bottom[i]; bottom[i] = rig

移动端上传照片 预览+draw on Canvas demo(解决iOS等设备照片旋转90度的bug)

背景: 本人的一个移动端H5项目,需求如下: 手机相册选取或拍摄照片后在页面上预览 然后绘制在canvas画布上. 这里,我们先看一个demo(http://jsfiddle.net/q3011893/83qfqpk8/embedded/) 操作步骤: 1.点击选择文件,拍摄一张照片,此时"预览:"文字下会显示你刚才拍摄的照片: 2.再点击"draw on Canvas",该按钮下的画布会绘制你刚才拍摄的照片. 正常的结果: 正文: 让input file支持拍照+

CC150:将一个矩阵旋转90度

一张图像表示成n X n的矩阵,写一个函数把图像旋转90度.不开辟额外的存储空间 我们假设要将图像逆时针旋转90度.原图如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 逆时针旋转90度后的图应该是: 4 8 12 16 3 7 11 15 2 6 10 14 1 5 9 13 我们要如何原地进行操作以达到上面的效果呢?可以分两步 第一步交换主对角线两侧的对称元素, 第二步交换第i行和第n-1-i行,即得到结果. 看图示: 原图:           第一