python 列表解析及二位数组

生成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]]python

[[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度旋转code

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)对象

相关文章
相关标签/搜索