今天分享一篇关于python下的zip()函数用法。

zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素按顺序组合成一个tuple,每个tuple中包含的是原有序列中对应序号位置的元素,然后返回由这些tuples组成的list。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。在所有参数长度相同的情况下,zip()与map()类似,没有参数的情况下zip()返回一个空list。

使用zip反转字典

     

<span style="font-family:Microsoft YaHei;">>>> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
m.items()
[('a', 1), ('c', 3), ('b', 2), ('d', 4)]
zip(m.values(), m.keys())
[(1, 'a'), (3, 'c'), (2, 'b'), (4, 'd')]
mi = dict(zip(m.values(), m.keys()))
mi
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}</span>

  

利用*号操作符,可以将list unzip(解压成单独的序列),基本示例如官方文档。

例:

help(zip)
Help on built-in function zip in module __builtin__:
zip(...)
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]

其中 zip([seq1, ...])接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。若传入参数的长度不等,则返回列表的长度和参数中长度最短的对象相同。

x=[1,2,3]
y=[1,2,3]
z=(1,2,3)
zip(x,y,z)
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

  

x=(1,2,3,4)
y=[1,2,3]
zip(x,y) #传入参数的长度不等,则返回列表的长度和参数中长度最短的对象相同
[(1, 1), (2, 2), (3, 3)]

  

x
(1, 2, 3, 4)
zip(x)
[(1,), (2,), (3,), (4,)]

  

zip()
[]

  zip()配合*号操作符,可以将已经zip过的列表对象解压,例如:

x=[1,2,3]
y=['a','b','c']
z=[4,5,6]
xyz=zip(x,y,z)
xyz
[(1, 'a', 4), (2, 'b', 5), (3, 'c', 6)]
zip(*xyz)
[(1, 2, 3), ('a', 'b', 'c'), (4, 5, 6)]

  

x=[5,6,7]
[x] #[x]生成一个列表的列表,它只有一个元素x
[[5, 6, 7]]
[x]*3 #[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]
[[5, 6, 7], [5, 6, 7], [5, 6, 7]]
x
[5, 6, 7]
zip(*[x]*3) #zip(* [x] * 3)等价于zip(x, x, x)
[(5, 5, 5), (6, 6, 6), (7, 7, 7)]

  

name=['song','ping','python']
age=[26,26,27]
zip(name,age)
[('song', 26), ('ping', 26), ('python', 27)]
for n,a in zip(name,age):
... print n,a
...
song 26
ping 26
python 27

好了以上就是我个人所了解的zip()函数用法,今天笔记到此为止了,有什么更好的建议和意见可以去我网站:圆柱模板  进行留言,谢谢!

python开发笔记之zip()函数用法详解的更多相关文章

  1. 【python】redis基本命令和基本用法详解

    [python]redis基本命令和基本用法详解 来自http://www.cnblogs.com/wangtp/p/5636872.html 1.redis连接 redis-py提供两个类Redis ...

  2. SQL中CONVERT()函数用法详解

    SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...

  3. php中setcookie函数用法详解(转)

    php中setcookie函数用法详解:        php手册中对setcookie函数讲解的不是很清楚,下面是我做的一些整理,欢迎提出意见.        语法:        bool set ...

  4. eval()函数用法详解

    eval()函数用法详解:此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eval()函数的用法.语法结构: eval(str) 此函数可以接受一个字符串str作为参数, ...

  5. 转载 LayoutInflater的inflate函数用法详解

    http://www.open-open.com/lib/view/open1328837587484.html LayoutInflater的inflate函数用法详解 LayoutInflater ...

  6. delphi中Application.MessageBox函数用法详解

    delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...

  7. C语言对文件的操作函数用法详解2

    fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const  ...

  8. C语言对文件的操作函数用法详解1

    在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...

  9. Python 字符串、列表和元组用法详解

    1.通用函数 len() #列表的元素个数.字符串的长度 2.''' '''与'\ '用法详解 s='''this is a text ''' -->输出s ---> 'this\nis\ ...

随机推荐

  1. openstack keystone 总结

    1.OpenStack组件 OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作.OpenStack是一个不断发展的系统,在它的发展历程之中,它的组件个数在增加,服务 ...

  2. navcat excel数据导入mysql的方法

    navcat excel数据导入mysql的方法 先navcat导出 xls格式 然后把数据复制到往这个xls里 (按照这个xls格式) 然后导入mysql就行了 如果导入的过程无法识别excel里的 ...

  3. LeetCode 421. 数组中两个数的最大异或值(Maximum XOR of Two Numbers in an Array) 71

    421. 数组中两个数的最大异或值 421. Maximum XOR of Two Numbers in an Array 题目描述 给定一个非空数组,数组中元素为 a0, a1, a2, - , a ...

  4. setdefault函数的用法及理解

    setdefault函数的用法及理解 dict.setdefault(key, default=None) 功能:如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于 ...

  5. docker 命令(我使用过的)

    是否安装docker:    docker version 启动docker:    service docker start 查看本机可用镜像:    docker images 删除镜像: doc ...

  6. oracle查询包含在子表中的主表数据

    Oracle数据库,查询某表中包含在子表中的数据,子表中数据按特定条件来源于该父表,SQL命令如 ) a_table父表,b_table子表,a和b表都有commandId列,a表的commandId ...

  7. repodata创建本地YUM仓库

    参考一createrepo是linux下的创建仓库的软件包.create是创建的意思,repo是repository的缩写,是仓库的意思. yum(Yellow dog Updater,Modifie ...

  8. java之mybatis之字段映射及多对一

    1. 数据库中表的列名和实体类的属性名称不一致. 可以使用 resultMap来解决. <select id="findAll" resultMap="UserMa ...

  9. js函数(续)

    一.全局变量和局部变量全局变量:当前js页面中均可使用的变量[声明在函数外面的变量],整个js页面中均可以使用.局部变量:声明在函数内部的变量,只能在函数内部使用.eg: var a = 1; con ...

  10. 在vue组件中访问vuex模块中的getters/action/state

    store的结构: city模块: 在各模块使用了命名空间的情况下,即 namespaced: true 时: 组件中访问模块里的state 传统方法: this.$store.state['模块名' ...