博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的zip函数
阅读量:7039 次
发布时间:2019-06-28

本文共 1131 字,大约阅读时间需要 3 分钟。

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)

转载于:https://juejin.im/post/5a697f2351882573392cee85

你可能感兴趣的文章
索尼富士康领投,AR显示技术厂商Digilens获得2200万美元融资
查看>>
Qt5 GUI 开发的应用易受远程代码执行漏洞的影响
查看>>
搞懂Java动态代理
查看>>
「镁客·请讲」NXROBO林天麟:我们分三步走,首先要做的就是打通机器人行业的产业链...
查看>>
Zcan无线扫描鼠标,滑哪扫哪
查看>>
寻找薛定谔的猫:量子物理的奇异世界
查看>>
mysql 获取刚插入行id汇总
查看>>
Python 数据科学入门教程:Matplotlib
查看>>
windows下codelite的使用
查看>>
VR设备前进路上,必须经历的九九八十一难
查看>>
5G汽车联盟,助力BBA角逐智能汽车市场
查看>>
安卓应用安全指南 4.5.1 使用 SQLite 示例代码
查看>>
django 1.8 官方文档翻译: 9-1-1 国际化和本地化
查看>>
OpenStack云撑起百联O2O战略布局
查看>>
Spring MVC使用@RestController生成JSON示例
查看>>
瑞士军刀包购买选择
查看>>
基于epoll封装的事件回调miniserver
查看>>
SpringBoot使用validator校验
查看>>
CSS去除免费虚拟主机的广告心得分享
查看>>
AngularJS学习总结
查看>>