zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象.

这个可迭代对象可以使用循环的方式列出其元素

若多个可迭代对象的长度不一致,则所返回的列表与长度最短的可迭代对象相同.

用法1:用两个列表生成一个zip对象

例1

 a1=[1,2,3]
a2=[4,5,6]
a3=[7,8,9]
a4=["a","b","c","d"]
zip1=zip(a1,a2,a3)
print(zip1)
#输出:<zip object at 0x7f5a22651c08>
for i in zip1:
... print(i)
#输出:
(1, 4, 7)
(2, 5, 8)
(3, 6, 9)

例2

 zip2=zip(a1,a2,a4)
print(zip2)
#输出:<zip object at 0x7f5a22651d48>
for j in zip2:
... print(j)
#输出:
(1, 4, 'a')
(2, 5, 'b')
(3, 6, 'c')

例3

 zip3=zip(a4)
print(zip3)
#输出:<zip object at 0x7f5a22651d08> for i in zip3:
... print(i)
#输出
('a',)
('b',)
('c',)
('d',)

例4

 zip4=zip(*a4 *3)
print(zip4)
#输出:<zip object at 0x7f5a22651f08>
for j in zip4:
... print(j)
#输出:('a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd')

用法2:二维矩阵变换(矩阵的行列互换)

 l1=[[1,2,3],[4,5,6],[7,8,9]]
print([[j[i] for j in l1] for i in range(len(l1[0])) ])
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
zip(*l1)
<zip object at 0x7f5a22651f88>
for i in zip(*l1):
... print(i)
...
(1, 4, 7)
(2, 5, 8)
(3, 6, 9)

最新文章

  1. 从零开始山寨Caffe&#183;柒:KV数据库
  2. App Transport Security has blocked a cleartext HTTP (http://)
  3. Notepad++隐藏的用法
  4. MVC dropdownlist使用
  5. android网络编程
  6. 一个简单json数据提交实例
  7. jquery validation插件
  8. 【Android类型SDK测试(二)】环境基础
  9. 前端自动化部署之gulp
  10. 【Web开发】Mean web开发 01-Express实现MVC模式开发
  11. Codeforces Beta Round #2 A,B,C
  12. ubuntu 英文系统下安装中文输入法
  13. Android必知必会--GreenDao缓存
  14. 怎么解决你的小程序有“bug”的问题?
  15. 使用CA签发的服务器证书搭建Tomcat双向SSL认证服务
  16. Go语言切片
  17. Django 系列博客(六)
  18. 记录使用yum安装nginx之后的目录问题
  19. 【CH5104】I-country 线性dp+路径输出
  20. ibatis.net之我的调整:Update语句的动态set字段

热门文章

  1. DDD开源框架
  2. Android系统移植与调试之------->如何修改Android设备添加3G上网功能
  3. 关于Android app的launcher图标更换后,仍然显示默认的ic_launcher图标的解决方法
  4. Android中的资源访问
  5. tool class
  6. 使用svn diff的-r参数的来比较任意两个版本的差异
  7. JETSON TK1 ~ 基于eclipse下开发ROS
  8. 【leetcode刷题笔记】Set Matrix Zeroes
  9. Spring中ApplicationContext和beanfactory区别
  10. Hadoop切换namenode为active