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 相关文章推荐
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
numpy中的高维数组转置实例
Apr 17 Python
使用python读取txt文件的内容,并删除重复的行数方法
Apr 18 Python
python计算两个数的百分比方法
Jun 29 Python
python3实现二叉树的遍历与递归算法解析(小结)
Jul 03 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
Python中调用其他程序的方式详解
Aug 06 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
python 字典套字典或列表的示例
Dec 16 Python
PyCharm第一次安装及使用教程
Jan 08 Python
详解Python中第三方库Faker
Sep 25 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面向对象程序设计之类常量用法实例
2014/08/20 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
python 实现归并排序算法
2012/06/05 Python
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
Java及python正则表达式详解
2017/12/27 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
外科实习自我鉴定
2013/10/06 职场文书
单位介绍信范文
2014/01/18 职场文书
工作时间上网检讨书
2014/02/03 职场文书
运动会入场词200字
2014/02/15 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
六查六看六改心得体会
2014/10/14 职场文书
团日活动总结格式
2015/05/11 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
nginx请求限制配置方法
2021/07/09 Servers
Nginx HTTP跳转至HTTPS
2022/05/15 Servers