博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day4 二维数组旋转90度
阅读量:6711 次
发布时间:2019-06-25

本文共 835 字,大约阅读时间需要 2 分钟。

    二维数组的旋转其实就是数组里面的元素对调的情况;下面有一个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)] for j in range(4)]print(data)#定义行的初始值,我们发现,行的变化是从0开始,递增到3col = 0while col < 4:    #循环的结束条件,由于只有四行,因此循环4即结束    for row in range(col,4):        #这里我们让行列的序号每次循环递增1,避免之前转换的再次转换        tem = data[row][col]        #存储临时变量,免得替换之后值发生改变        data[row][col] = data[col][row]        #列表行列的值进行互换        data[col][row] = tem    col += 1    #列的索引每次加一print(data)

    上面代码的主题思想就是流程图中的思想,只需要进行必要的转换即可,注意转换的过程中所以值的变化。所以流程图还是很重要的。

    运行代码如下:

    [[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]]

转载于:https://www.cnblogs.com/gengcx/p/6882760.html

你可能感兴趣的文章
Sublime Text 3 - 设置自动换行
查看>>
nil / Nil / NULL / NSNull in Objective-C
查看>>
iphone系统架构以及各层提供的主要服务
查看>>
配置sunspot tomcat结合sunspot_rails
查看>>
数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 执行
查看>>
单元测试(三)JUnit 进阶功能:Suites 打包测试、Categories 分类测试
查看>>
Java获取指定日期前一月(年)或后一月(年)
查看>>
实习三
查看>>
飞信系统4月29日升级后飞信机器人无法使用的解决办法
查看>>
Linux Epoll介绍和程序实例
查看>>
vue不通过路由直接获取地址栏参数的方法
查看>>
Android 唯一识别码
查看>>
Canonical今天宣布推出Plex Media Server作为Snap Store中的Snap应用程序
查看>>
gdb 学习1
查看>>
SVG TEXT 水平和垂直方向居中
查看>>
Kurento API 参考
查看>>
hello world
查看>>
C语言基础及指针⑦结构体与指针
查看>>
四种常用线程池
查看>>
兼容IE的radio遍历
查看>>