生成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)對象