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正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
python基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
Python装饰器的函数式编程详解
Feb 27 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
python实现推箱子游戏
Mar 25 Python
Python读取指定日期邮件的实例
Feb 01 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
Python使用贪婪算法解决问题
Oct 22 Python
Python读取分割压缩TXT文本文件实例
Feb 14 Python
爬虫代理的cookie如何生成运行
Sep 22 Python
Python matplotlib可视化之绘制韦恩图
Feb 24 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
新浪新闻小偷
2006/10/09 PHP
一个php作的文本留言本的例子(五)
2006/10/09 PHP
PHP教程 基本语法
2009/10/23 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
python目录与文件名操作例子
2016/08/28 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
批评与自我批评总结
2014/10/17 职场文书
2014年教研室工作总结
2014/12/06 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
公司欠款证明
2015/06/24 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
MySQL常见优化方案汇总
2022/01/18 MySQL
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技