需求:将一个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)