Python3實(shí)現(xiàn)的旋轉(zhuǎn)矩陣圖像算法示例
本文實(shí)例講述了Python3實(shí)現(xiàn)的旋轉(zhuǎn)矩陣圖像算法。分享給大家供大家參考,具體如下:
問(wèn)題:
給定一個(gè) n × n 的二維矩陣表示一個(gè)圖像。
將圖像順時(shí)針旋轉(zhuǎn) 90 度。
方案一:先按X軸對(duì)稱旋轉(zhuǎn), 再用zip()解壓,最后用list重組。
# -*- coding:utf-8 -*-
#! python3
class Solution:
def rotate(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: void Do not return anything, modify matrix in-place instead.
"""
matrix[:] = map(list, zip(*matrix[: : -1]))
return matrix
if __name__ == '__main__':
# 測(cè)試代碼
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
[13,14,15,16]
]
solution = Solution()
result = solution.rotate(matrix)
print(result)
運(yùn)行結(jié)果:
[[13, 9, 5, 1], [14, 10, 6, 2], [15, 11, 7, 3], [16, 12, 8, 4]]
方案二:找到規(guī)律,用原矩陣數(shù)據(jù) 賦值
# -*- coding:utf-8 -*-
#! python3
class Solution:
def rotate(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: void Do not return anything, modify matrix in-place instead.
"""
m = matrix.copy()
n = len(matrix)
for i in range(n):
matrix[i] = [m[j][i] for j in range(n - 1, -1, -1)]
return
if __name__ == '__main__':
# 測(cè)試代碼
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
[13,14,15,16]
]
solution = Solution()
result = solution.rotate(matrix)
print(result)
運(yùn)行結(jié)果:
[[13, 9, 5, 1], [14, 10, 6, 2], [15, 11, 7, 3], [16, 12, 8, 4]]
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
淺談keras中的keras.utils.to_categorical用法
這篇文章主要介紹了淺談keras中的keras.utils.to_categorical用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
Python實(shí)現(xiàn)的各種常見(jiàn)分布算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的各種常見(jiàn)分布算法,結(jié)合實(shí)例形式總結(jié)分析了Python常見(jiàn)的各種分布算法相關(guān)實(shí)現(xiàn)技巧,包括二項(xiàng)分布、離散分布、泊松分布、正態(tài)分布、指數(shù)分布等算法實(shí)現(xiàn)方法,需要的朋友可以參考下2018-12-12
Python 多進(jìn)程并發(fā)操作中進(jìn)程池Pool的實(shí)例
下面小編就為大家?guī)?lái)一篇Python 多進(jìn)程并發(fā)操作中進(jìn)程池Pool的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
Python繪制分形圖案探索無(wú)限細(xì)節(jié)和奇妙之美
本文將介紹如何使用Python繪制各種分形圖案,包括分形樹(shù)、科赫曲線、曼德博集合等。通過(guò)本文讀者可以了解分形圖案的基本概念和構(gòu)造方法,并學(xué)會(huì)使用Python繪制出各種精美的分形圖案。本文還提供了具體的代碼示例和實(shí)踐案例,幫助讀者更好地理解分形圖案的奇妙之美2023-04-04
對(duì)numpy數(shù)據(jù)寫(xiě)入文件的方法講解
今天小編就為大家分享一篇對(duì)numpy數(shù)據(jù)寫(xiě)入文件的方法講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Python實(shí)現(xiàn)Word的讀寫(xiě)改操作
本文主要介紹了運(yùn)用docx模塊實(shí)現(xiàn)讀取Word,調(diào)整Word樣式以及Word 寫(xiě)入操作的示例代碼,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-11-11
詳解如何用Python寫(xiě)個(gè)聽(tīng)小說(shuō)的爬蟲(chóng)
在路上經(jīng)常發(fā)現(xiàn)好多人都喜歡用耳機(jī)聽(tīng)小說(shuō),同事居然可以一整天的帶著一只耳機(jī)聽(tīng)小說(shuō)。本文就用Python爬蟲(chóng)實(shí)現(xiàn)下載聽(tīng)小說(shuō)tingchina.com的音頻,需要的可以參考一下2022-02-02
Django對(duì)接elasticsearch實(shí)現(xiàn)全文檢索的示例代碼
搜索是很常用的功能,如果是千萬(wàn)級(jí)的數(shù)據(jù)應(yīng)該怎么檢索,本文主要介紹了Django對(duì)接elasticsearch實(shí)現(xiàn)全文檢索的示例代碼,感興趣的可以了解一下2021-08-08

