對Python的zip函數(shù)妙用,旋轉(zhuǎn)矩陣詳解
Python的zip函數(shù)
示例1:
x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) print xyz
運行的結(jié)果是:
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
從這個結(jié)果可以看出zip函數(shù)的基本運作方式。
示例2:
x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) u = zip(*xyz) print u
運行的結(jié)果是:
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
一般認(rèn)為這是一個unzip的過程,它的運行機制是這樣的:
在運行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
那么,zip(*xyz) 等價于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))
所以,運行結(jié)果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
注:在函數(shù)調(diào)用中使用*list/tuple的方式表示將list/tuple分開,作為位置參數(shù)傳遞給對應(yīng)函數(shù)(前提是對應(yīng)函數(shù)支持不定個數(shù)的位置參數(shù))
class Solution(object): def spiralOrder(self, matrix): """ :type matrix: List[List[int]] :rtype: List[int] """ return matrix and list(matrix.pop(0)) + self.spiralOrder(zip(*matrix)[::-1]) obj = Solution() print obj.spiralOrder([ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]])
Your return [1,2,3,6,9,8,7,4,5].
以上這篇對Python的zip函數(shù)妙用,旋轉(zhuǎn)矩陣詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu?Server?20.04?LTS?環(huán)境下搭建vim?編輯器Python?IDE的詳細步驟
這篇文章主要介紹了Ubuntu?Server?20.04?LTS?環(huán)境下搭建vim?編輯器Python?IDE,首先是安裝配置vim-plug及安裝coc.nvim插件,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08Python基于二分查找實現(xiàn)求整數(shù)平方根的方法
這篇文章主要介紹了Python基于二分查找實現(xiàn)求整數(shù)平方根的方法,涉及Python的二分查找算法與數(shù)學(xué)運算相關(guān)技巧,需要的朋友可以參考下2016-05-05python 自動化將markdown文件轉(zhuǎn)成html文件的方法
這篇文章主要介紹了python 自動化將markdown文件轉(zhuǎn)成html文件的方法的相關(guān)資料,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2016-09-09