Python中的zip函数使用示例


Posted in Python onJanuary 29, 2015

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:

1.示例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.示例2:

x = [1, 2, 3]

y = [4, 5, 6, 7]

xy = zip(x, y)

print xy

运行的结果是:

[(1, 4), (2, 5), (3, 6)]

从这个结果可以看出zip函数的长度处理方式。

3.示例3:

x = [1, 2, 3]

x = zip(x)

print x

运行的结果是:
[(1,), (2,), (3,)]

从这个结果可以看出zip函数在只有一个参数时运作的方式。

4.示例4:

x = zip()

print x

运行的结果是:
[]

从这个结果可以看出zip函数在没有参数时运作的方式。

5.示例5:

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分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

6.示例6:

x = [1, 2, 3]

r = zip(* [x] * 3)

print r

运行的结果是:
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

它的运行机制是这样的:

[x]生成一个列表的列表,它只有一个元素x

[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]

zip(* [x] * 3)的意思就明确了,zip(x, x, x)

Python 相关文章推荐
Python常用的爬虫技巧总结
Mar 28 Python
Python守护线程用法实例
Jun 23 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
django进阶之cookie和session的使用示例
Aug 17 Python
python实现自动登录
Sep 17 Python
python dataframe向下向上填充,fillna和ffill的方法
Nov 28 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
对python pandas中 inplace 参数的理解
Jun 27 Python
如何快速理解python的垃圾回收机制
Sep 01 Python
Python 中的函数装饰器和闭包详解
Feb 06 Python
Python的另外几种语言实现
Jan 29 #Python
python中使用xlrd、xlwt操作excel表格详解
Jan 29 #Python
Python中实现常量(Const)功能
Jan 28 #Python
Python使用random和tertools模块解一些经典概率问题
Jan 28 #Python
Python中的异常处理学习笔记
Jan 28 #Python
Python中集合类型(set)学习小结
Jan 28 #Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 #Python
You might like
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
JavaScript面象对象设计
2008/04/28 Javascript
prototype Element学习笔记(篇二)
2008/10/26 Javascript
JavaScript入门教程 Cookies
2009/01/31 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
js的写法基础分析
2011/01/17 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
Python多线程学习资料
2012/12/19 Python
python的id()函数解密过程
2012/12/25 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
Python 3 判断2个字典相同
2019/08/06 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
Django实现网页分页功能
2019/10/31 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
服务中心夜班服务员岗位职责
2013/11/27 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
产品质量保证书范本
2015/02/27 职场文书