欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python一行代碼解決矩陣旋轉(zhuǎn)的問題

 更新時間:2019年11月30日 12:41:51   作者:Jason_Bourne_  
今天小編就為大家分享一篇Python一行代碼解決矩陣旋轉(zhuǎn)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

今天刷《劍指offer》的時候碰到這樣一道題:

輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數(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輸出并且刪除第一行后,再進(jìn)行一次逆時針旋轉(zhuǎn),就變成:

6 9
5 8
4 7

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

最主要的在于實現(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

以上這篇Python一行代碼解決矩陣旋轉(zhuǎn)的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python雙端隊列原理、實現(xiàn)與使用方法分析

    python雙端隊列原理、實現(xiàn)與使用方法分析

    這篇文章主要介紹了python雙端隊列原理、實現(xiàn)與使用方法,結(jié)合實例形式分析了Python雙端隊列的概念、原理、定義及使用方法,需要的朋友可以參考下
    2019-11-11
  • python實現(xiàn)簡單神經(jīng)網(wǎng)絡(luò)算法

    python實現(xiàn)簡單神經(jīng)網(wǎng)絡(luò)算法

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)簡單神經(jīng)網(wǎng)絡(luò)算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python實現(xiàn)博客快速備份的腳本分享

    Python實現(xiàn)博客快速備份的腳本分享

    本文針對博客園實現(xiàn)了一個自動備份腳本,可以快速將自己的文章備份成Markdown格式的獨立文件,備份后的md文件可以直接放入到hexo博客中,感興趣的可以了解一下
    2022-09-09
  • Pytorch 使用CNN圖像分類的實現(xiàn)

    Pytorch 使用CNN圖像分類的實現(xiàn)

    這篇文章主要介紹了Pytorch 使用CNN圖像分類的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • python連接并簡單操作SQL?server數(shù)據(jù)庫詳細(xì)步驟

    python連接并簡單操作SQL?server數(shù)據(jù)庫詳細(xì)步驟

    python作為一門十分火熱的編程語言,操作數(shù)據(jù)庫自然是必不可少的,下面這篇文章主要給大家介紹了關(guān)于python連接并簡單操作SQL?server數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • 利用Python編寫本地音樂播放器

    利用Python編寫本地音樂播放器

    這篇文章主要介紹了利用Python編寫本地音樂播放器,主要以分享完整源碼展開文章內(nèi)容,具有一的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • Python Faker批量生成測試數(shù)據(jù)的實現(xiàn)

    Python Faker批量生成測試數(shù)據(jù)的實現(xiàn)

    本文主要介紹了Python Faker批量生成測試數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • Django 構(gòu)建模板form表單的兩種方法

    Django 構(gòu)建模板form表單的兩種方法

    這篇文章主要介紹了Django 構(gòu)建模板form表單的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python數(shù)據(jù)庫的連接實現(xiàn)方法與注意事項

    Python數(shù)據(jù)庫的連接實現(xiàn)方法與注意事項

    這篇文章主要介紹了Python數(shù)據(jù)庫的連接實現(xiàn)方法與注意事項,需要的朋友可以參考下
    2016-02-02
  • python開發(fā)環(huán)境PyScripter中文亂碼問題解決方案

    python開發(fā)環(huán)境PyScripter中文亂碼問題解決方案

    PyScripter是一個使用Delphi開發(fā)的開源的Python集成開發(fā)環(huán)境(IDE),PyScripter支持Python2.4、2.5、2.6、2.7、3.0、3.1、3.2,而且可以根據(jù)需要切換。
    2016-09-09

最新評論