溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何解決矩陣旋轉(zhuǎn)的問題

發(fā)布時間:2021-08-04 10:40:42 來源:億速云 閱讀:167 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)Python如何解決矩陣旋轉(zhuǎn)的問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數(shù)字,例如,如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數(shù)字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

思路:可以模擬魔方逆時針旋轉(zhuǎn)的方法,一直做取出第一行的操作,例如 :

1 2 3
4 5 6
7 8 9

利用pop輸出并且刪除第一行后,再進行一次逆時針旋轉(zhuǎn),就變成:

6 9
5 8
4 7

然后,繼續(xù)重復上述操作即可。

最主要的在于實現(xiàn)矩陣的逆時針操作。關(guān)于矩陣的旋轉(zhuǎn)有好幾種,轉(zhuǎn)置、順時針、逆時針,下面直接上代碼,用一行python代碼實現(xiàn)這三種操作。

矩陣轉(zhuǎn)置:

matrix = [[1,2,3], [4,5,6], [7,8,9]]
matrix = map(list, zip(*matrix))
print(matrix)
 
>>>[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

矩陣順時針旋轉(zhuǎn):先把矩陣上下翻轉(zhuǎn),然后在轉(zhuǎn)置一下

matrix = [[1,2,3], [4,5,6], [7,8,9]]
matrix[:] = map(list,zip(*matrix[::-1]))
print(matrix)
 
>>>[[7, 4, 1], [8, 5, 2], [9, 6, 3]]

矩陣逆時針旋轉(zhuǎn):先把矩陣轉(zhuǎn)置一下,然后在上下翻轉(zhuǎn)

matrix = [[1,2,3], [4,5,6], [7,8,9]]
matrix[:] = map(list,zip(*matrix))[::-1]
print(matrix)
 
>>>[[3, 6, 9], [2, 5, 8], [1, 4, 7]]

下面是完整的解題代碼:

# -*- coding:utf-8 -*-
class Solution:
  # matrix類型為二維列表,需要返回列表
  def printMatrix(self, matrix):
    # write code here
    result = []
    while(matrix):
      result += matrix.pop(0)
      if not matrix or not matrix[0]:
        break
      # 將矩陣逆時針旋轉(zhuǎn)
      matrix[:] = map(list, zip(*matrix))[::-1]
    return result

關(guān)于“Python如何解決矩陣旋轉(zhuǎn)的問題”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI