zip函数的作用:

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:二维矩阵变换(行、列互换)

matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]

使用*号拆分list,zip对每个list打包成tuple

>>> list(zip(*matrix))
[
(1, 4, 7),
(2, 5, 8),
(3, 6, 9)
]

 用列表推导式行列互换

>>> 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]
]

  

python3中的zip函数的更多相关文章

  1. python3中的 zip()函数 和python2中的 zip()函数 的区别

    python3中的 zip()函数 和python2中的 zip()函数 的区别: 描述: zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象. ...

  2. python3中的zip函数(转)

    原文地址:https://www.cnblogs.com/qqhfeng/p/5267352.html 在window,显示变量 print(x);而在linux中 print x 例如,有两个列表: ...

  3. python中的zip()函数和map()函数

    一.zip()函数 1.语法: zip(iterable, ...) 参数说明: iterable,...-- 一个或多个迭代器; 在python2中: zip() 函数用于将可迭代的对象作为参数,将 ...

  4. python中使用zip函数出现<zip object at 0x02A9E418>

    在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...

  5. Python3中的字符串函数学习总结

    这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...

  6. Python3.x:zip()函数

    Python3.x:zip()函数 1,概述: zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表: 2,示例: (1).示例1: x = [1, 2, 3] y = [4, ...

  7. Python3中的super()函数详解

    关于Python3中的super()函数 我们都知道,在Python3中子类在继承父类的时候,当子类中的方法与父类中的方法重名时,子类中的方法会覆盖父类中的方法, 那么,如果我们想实现同时调用父类和子 ...

  8. python3版本中的zip函数

    例如,有两个列表: 1 2 >>>a = [1,2,3] >>>b = [4,5,6] 使用zip()函数来可以把列表合并,并创建一个元组对的列表. 1 2 > ...

  9. 关于python3.4版本中的zip函数

    特别注意: 在window,显示变量 print(x);而在linux中 print x 例如,有两个列表: >>>a = [1,2,3] >>>b = [4,5, ...

随机推荐

  1. mybatis官网文档mybatis_doc

    在平时的学习中,我们可以去参考官网的文档来学习,这个文档有中文的,方便我们去阅读,而且这里的分类很详细. 官网文档链接:http://www.mybatis.org/mybatis-3/zh/inde ...

  2. 【python之路21】用户登陆程序函数

    一.用户登陆函数实例 1.注意:以后写函数时必须在函数第一行后按回车加入“”““”“””两对三引号后回车,此时会自动列出参数值,注释函数的作用.参数的用法和返回值 #!usr/bin/env pyth ...

  3. sublime3安装javascript控制台环境 方法2

    1.下载node.js sublimeText3- 安装nodejs插件   ctrl+shift+p — install package —nodejs 2.修改配置文件 在 Sublie Text ...

  4. webpack学习之—— Loaders

    loader 用于对模块的源代码进行转换.loader 可以使你在 import 或"加载"模块时预处理文件.因此,loader 类似于其他构建工具中“任务(task)”,并提供了 ...

  5. 数据库Mysql监控及优化

    在做 性能测试的时候数据最重要,数据来源于哪里呢,当然是数据库了,数据库中,我们可以知道,数据从磁盘中要比从缓存中读取数据的时间要慢的多的多,还可以知道,同样的一个sql语句,执行的效率也不一样,这是 ...

  6. nested exception is org.hibernate.MappingException解决方案

    1.可能是因为映射文件( Order.hbm.xm)配置的class路径出错 <hibernate-mapping> <class name="com.web.bean.O ...

  7. freemarker 取值(插值)(转)

    Java数据模型 1)基本数据类型取值 八种基本的java类型:byte.short.int.long:float,double:char:boolean 对应的封装类型:Byte.Short.Int ...

  8. 2019-8-31-C#-对-byte-数组进行模式搜索

    title author date CreateTime categories C# 对 byte 数组进行模式搜索 lindexi 2019-08-31 16:55:58 +0800 2018-07 ...

  9. 洛谷P1316 P1824

    P1316 丢瓶盖 题目描述 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以 ...

  10. PHPCMS V9双语站建设切换

    PHPCMS V9要做双语,很多同学都是迷茫的,在此特地分享我的双语制作步辶 我这种模式是把两个站点都改为HTML静态模式才可以实现 双语切换可分为两种模式: 1.解析二级域名来切换双语 解析二级域名 ...