博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python:内置函数zip()
阅读量:2223 次
发布时间:2019-05-08

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

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) #输出:
for i in zip1: ... print(i) #输出: (1, 4, 7) (2, 5, 8) (3, 6, 9)

例2

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

例3

zip3=zip(a4) print(zip3)#输出:
for i in zip3: ... print(i) #输出 ('a',) ('b',) ('c',) ('d',)

例4

zip4=zip(*a4 *3) print(zip4)#输出:
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) 
for i in zip(*l1): ... print(i) ... (1, 4, 7) (2, 5, 8) (3, 6, 9)

转载于:https://www.cnblogs.com/volcao/p/8758307.html

你可能感兴趣的文章
初探Java设计模式4:一文带你掌握JDK中的设计模式
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java集合详解8:Java集合类细节精讲,细节决定成败
查看>>
Java并发指南1:并发基础与Java多线程
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南5:JMM中的final关键字解析
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java并发指南7:JUC的核心类AQS详解
查看>>
Java并发指南8:AQS中的公平锁与非公平锁,Condtion
查看>>
Java网络编程和NIO详解6:Linux epoll实现原理详解
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>