对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 31 Python
Python进程通信之匿名管道实例讲解
Apr 11 Python
Python中字典的基础知识归纳小结
Aug 19 Python
为什么入门大数据选择Python而不是Java?
Mar 07 Python
java中两个byte数组实现合并的示例
May 09 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
Django中modelform组件实例用法总结
Feb 10 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
python使用建议与技巧分享(一)
Aug 17 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 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
我的论坛源代码(六)
2006/10/09 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
心扬JS分页函数代码
2010/09/10 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
js运动应用实例解析
2015/12/28 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
详解python编译器和解释器的区别
2019/06/24 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
css sprite简单实例
2016/05/23 HTML / CSS
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
保护环境建议书
2014/03/12 职场文书
三十年同学聚会感言
2015/07/30 职场文书
党组织结对共建协议书
2016/03/23 职场文书
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL