Python一行代碼解決矩陣旋轉(zhuǎn)的問(wèn)題
今天刷《劍指offer》的時(shí)候碰到這樣一道題:
輸入一個(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
以上這篇Python一行代碼解決矩陣旋轉(zhuǎn)的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python sklearn包——混淆矩陣、分類報(bào)告等自動(dòng)生成方式
- python 解決print數(shù)組/矩陣無(wú)法完整輸出的問(wèn)題
- python 和c++實(shí)現(xiàn)旋轉(zhuǎn)矩陣到歐拉角的變換方式
- Python:二維列表下標(biāo)互換方式(矩陣轉(zhuǎn)置)
- Python 矩陣轉(zhuǎn)置的幾種方法小結(jié)
- Python:合并兩個(gè)numpy矩陣的實(shí)現(xiàn)
- python 二維矩陣轉(zhuǎn)三維矩陣示例
- python實(shí)現(xiàn)矩陣和array數(shù)組之間的轉(zhuǎn)換
- Python稀疏矩陣及參數(shù)保存代碼實(shí)現(xiàn)
相關(guān)文章
關(guān)于Python調(diào)用百度語(yǔ)音合成SDK實(shí)現(xiàn)文字轉(zhuǎn)音頻的方法
這篇文章主要介紹了關(guān)于Python調(diào)用百度語(yǔ)音合成SDK實(shí)現(xiàn)文字轉(zhuǎn)音頻的方法,AipSpeech是語(yǔ)音合成的Python?SDK客戶端,為使用語(yǔ)音合成的開(kāi)發(fā)人員提供了一系列的交互方法,需要的朋友可以參考下2023-07-07
python實(shí)現(xiàn)盲盒抽獎(jiǎng)功能(減庫(kù)存)
本文主要介紹了python實(shí)現(xiàn)盲盒抽獎(jiǎng)功能,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Python3中zip()函數(shù)知識(shí)點(diǎn)小結(jié)
本文主要介紹了Python3中zip()函數(shù)知識(shí)點(diǎn)小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
詳解Python Matplotlib解決繪圖X軸值不按數(shù)組排序問(wèn)題
這篇文章主要介紹了詳解Python Matplotlib解決繪圖X軸值不按數(shù)組排序問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
python讀取excel指定列數(shù)據(jù)并寫入到新的excel方法
今天小編就為大家分享一篇python讀取excel指定列數(shù)據(jù)并寫入到新的excel方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Python Pandas工具繪制數(shù)據(jù)圖使用教程
Pandas是基于NumPy 的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas還可以繪制多重?cái)?shù)據(jù)圖表,本文將為大家介紹如何通過(guò)Pandas繪制圖表,感興趣的可以了解一下2021-12-12

