示例:輸入 [[1,2,3,7],[4,5,6,9],[7,9,2,4]]得到輸出: [[7,4,1],[9,5,2],[2,6,3],[4,9,7]]
for i in range(len(arr)):
for j in range(len(arr[i])):
if i == 0:
else:
r_arr[j].insert(0,arr[i][j])
思路非常簡單:首先遍歷list內的所有元素。
其中第一行的元素最後將出現在新陣列每一列的最後一位,第二行的元素將出現在新陣列每一列的倒數第二位……以此類推。因此我們只需要遍歷,並將元素依次向前插入即可。但此法時間複雜度過高。insert()方法本身自帶n個時間複雜度。因此實際執行會非常慢。
如果可以確定這個二維list是矩陣,那麼我們就不用這麼麻煩。下面的**來自王神仙前輩:
def rotate90angle(arr):
result =
h = len(arr) - 1
w = len(arr[0]) - 1
for j in range(len(arr[0])):
item =
for i in range(len(arr)):
return result
arr = np.array([[1,2,3,7],[4,5,6,9],[7,9,2,4]]) #用np定義陣列
def rotaryr(arr):
r_arr = arr.reshape(arr.size)
r_arr = r_arr[::-1]
r_arr = r_arr.reshape(arr.shape)
r_arr = np.transpose(r_arr)[::-1]
return r_arr
順帶一提逆時針旋轉的方法如下:
def rotaryl(arr):
r_arr = np.transpose(arr)
r_arr = r_arr[::-1]
return r_arr
想法也很簡單,分別用transpose()方法和reshape()方法對陣列進行序列上和形狀上的改變即可。 python實現二維列表(list)的旋轉 反轉
講在前面的話,在leetcode刷到一道in place的旋轉影象的題,同時在想如果不原位旋轉的話,肯定有其他簡單的方法的,答案是肯定的。順便寫篇部落格來記錄一下python中的反轉list的方法。1.python中反轉list的幾種簡單方法 1.1 使用reversed 的函式,它是乙個生成器,返...
Python建立二維陣列 關於list的乙個小坑
1.遇到的問題 今天寫python 的時候遇到了乙個大坑,差點就耽誤我交作業了。問題是這樣的,我需要建立乙個二維陣列,如下 m n 3test 0 m nprint test test 輸出結果如下 test 0,0,0 0,0,0 0,0,0 是不是看起來沒有一點問題?一開始我也是這麼覺得的,以為...
python建立與遍歷List二維列表的方法
python 建立list二維列表 lists for i in range 3 建立的是多行三列的二維列表 for i in range 3 lists 0 append i 程式設計客棧 for i in range 5 lists 1 append i for i in range 7 lis...