Python如何解決矩陣旋轉(zhuǎn)的問題-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)公司于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元吳橋做網(wǎng)站,已為上家服務(wù),為吳橋各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

輸入一個(gè)矩陣,按照從外向里以順時(shí)針的順序依次打印出每一個(gè)數(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.

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

1 2 3
4 5 6
7 8 9

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

6 9
5 8
4 7

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

最主要的在于實(shí)現(xiàn)矩陣的逆時(shí)針操作。關(guān)于矩陣的旋轉(zhuǎn)有好幾種,轉(zhuǎn)置、順時(shí)針、逆時(shí)針,下面直接上代碼,用一行python代碼實(shí)現(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]]

矩陣順時(shí)針旋轉(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]]

矩陣逆時(shí)針旋轉(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
      # 將矩陣逆時(shí)針旋轉(zhuǎn)
      matrix[:] = map(list, zip(*matrix))[::-1]
    return result

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:Python如何解決矩陣旋轉(zhuǎn)的問題-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://bm7419.com/article26/heccg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、面包屑導(dǎo)航服務(wù)器托管、手機(jī)網(wǎng)站建設(shè)、App開發(fā)、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司