对Python的zip函数妙用,旋转矩阵详解


Posted in Python onDecember 13, 2018

Python的zip函数

示例1:

x = [1, 2, 3]

y = [4, 5, 6]

z = [7, 8, 9]

xyz = zip(x, y, z)

print xyz

运行的结果是:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

从这个结果可以看出zip函数的基本运作方式。

示例2:

x = [1, 2, 3]

y = [4, 5, 6]

z = [7, 8, 9]

xyz = zip(x, y, z)

u = zip(*xyz)

print u

运行的结果是:

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

一般认为这是一个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))

所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

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函数妙用,旋转矩阵详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
python装饰器decorator介绍
Nov 21 Python
举例讲解Python中装饰器的用法
Apr 27 Python
python编写微信远程控制电脑的程序
Jan 05 Python
Python数据处理numpy.median的实例讲解
Apr 02 Python
python实现将读入的多维list转为一维list的方法
Jun 28 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
Jul 14 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 Python
python SOCKET编程基础入门
Feb 27 Python
Django实现聊天机器人
May 31 Python
python将list转为matrix的方法
Dec 12 #Python
python矩阵的转置和逆转实例
Dec 12 #Python
对Python 除法负数取商的取整方式详解
Dec 12 #Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 #Python
解决sublime+python3无法输出中文的问题
Dec 12 #Python
python3实现多线程聊天室
Dec 12 #Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 #Python
You might like
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
PHP7新增函数
2021/03/09 PHP
javascript dom 基本操作小结
2010/04/11 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
Augularjs-起步详解
2016/07/08 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
python实现复制整个目录的方法
2015/05/12 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
Python中return self的用法详解
2018/07/27 Python
在python中实现对list求和及求积
2018/11/14 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
python中return的返回和执行实例
2019/12/24 Python
纯CSS3打造属于自己的“小黄人”
2016/03/14 HTML / CSS
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
高中生自我鉴定范文
2013/10/30 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
2015年团支书工作总结
2015/04/03 职场文书
党章学习心得体会2016
2016/01/14 职场文书
golang json数组拼接的实例
2021/04/28 Golang