python 列表解析及二位数组

本文介绍了Python中使用列表解析生成二维数组的方法,并通过实例详细解释了如何利用列表解析实现矩阵的90度旋转,包括具体的实现代码及过程。

生成4*4 的矩阵 for i in [[x for x in range(1,5)] for x in range(1,5)]: print i [[x for x in range(1,5)] for x in range(1,5)] 可以理解为 [for x in range(1,5) [x for x in range(1,5)] ##=== [1,2,3,4] ###=========[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]

[[y for y in range(1,5)] for x in range(1,5)] 可以理解为 [for x in range(1,5) [y for y in range(1,5)] ] ##========[y,y,y,y] ###========[[y,y,y,y],[y,y,y,y],[y,y,y,y],[y,y,y,y]] ###========[[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]] 执行的过程为 参考 http://codingpy.com/article/python-list-comprehensions-explained-visually/

列表解析实现 二维数组及其旋转 90度旋转

a = [[x for x in range(1,10)] for x in range(1,10)]
def spin(list):
    n = len(a)
    for j in range(n-1):         ####执行对调 的 次数n-1
        for i in range(j,n):       ######  对调元素
            a[j][i],a[i][j] = a[i][j],a[j][i]
    for x in a:
        print x

旋转的代码思路(90度44数组) 正方形 画一条对角线(左上角点和右下角点的对角线),90度就是将所有元素以这条对角线为对称轴进行对调 第一次对调 就是将正方形的上边元素与左边元素对调 第二次对调 将上与左边线向内平行移动(各个元素都在相应的正方形的上与左边上) 第三次对调 继续第二次的步骤,如果发现所有的元素都已经在画的正方形上和左边上了,那么对调这行就结束(44 的数组需要三步,55需要4步。。。。会发现nn需要n-1步) 在实现4*4数组的元素对象时(所有的对调自己写一遍),我们会发现,对调过程中元素对应的列表的key(a[key1][key2])会根据 执行的次数发生变化.对调的循环 范围为range(j,n)j (range(n-1))为对调执行的次数(这里把执行完一次左上边上所有元素的对调作为一次)即对调执行的次数循环为range(n-1)

转载于:https://my.oschina.net/u/1775013/blog/783932

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值