python zip()函数用法

python zip()函数用法

大家好,又见面了,我是全栈君。

zip() –内建函数

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

与dict() 连用,可完成list组合成字典;

注:python3目前zip函数print输出不能正常显示,显示如:<zip object at 0x0000000002598548>

 

用法示例:

读者看看下面的例子,对zip()函数的基本用法就可以明白了:

 1 >>> a = [1,2,3]
 2 >>> b = [4,5,6]
 3 >>> c = [4,5,6,7,8]
 4 >>> n = zip(a,b)
 5 [(1, 4), (2, 5), (3, 6)]
 6 >>> zip(a,c)
 7 [(1, 4), (2, 5), (3, 6)]
 8 >>> zip(a)
 9 [(1,), (2,), (3,)]
10 >>> zip(*n)
11 [(1, 2, 3), (4, 5, 6)]

注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

 

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

这种方法速度更快但也更难以理解,将list看成tuple解压,恰好得到我们“行列互换”的效果,再通过对每个元素应用list()函数,将tuple转换为list

 

1 >>> x = [1, 2, 3]
2 >>> r = zip(* [x] * 3)
3 >>> print r
4 [(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://www.cnblogs.com/feiyueNotes/p/8322340.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107745.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux ioctl FIONREAD 和select 使用

    Linux ioctl FIONREAD 和select 使用LinuxioctlFIONREAD和select使用使用select与ioctl判断socketclient是否断开的方式(1)ioctl+FIONREADintnsel=select(maxfd+1,&(rfds),NULL,NULL,&timeout);if(-1!=ioctl(clientfd,FIONREAD,&nread)){if(nread!=0){result=readable;}else{resul

    2022年7月23日
    12
  • HTML中的空格字符_dw空格代码怎么打

    HTML中的空格字符_dw空格代码怎么打在学习插入空格字符代码书写方法之前,我们要知道,html代码的空格字符,在浏览器中,总会被压缩为一个字符!也就是说,你在html文本中输入多个空格,但在浏览器中,只会保留显示一个字符,其余的都将被浏览器删除。再打个比如,你在html中输入了8个空格字符,如下图所示:在显示之前,浏览器会删除其余7个,而只保留一个空格字符,如下图所示:也就是说,无论你输入多少个空格字符,在浏览器中显示的永远和上图一样…

    2025年11月18日
    3
  • Windows常用快捷键和常用的cmd命令(亲测用了办公效率提升明显)

    Windows常用快捷键和常用的cmd命令(亲测用了办公效率提升明显)Widows常用快捷键常用的运行窗口命令大全常用的cmd命令

    2022年7月21日
    20
  • 菲尼克斯电源模块的安装

    菲尼克斯电源模块的安装这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入菲尼克斯电源模块的安装QUINT4-PS/1AC/24DC/101.安全规范和安装注意事项警告:电击危险!仅有具备从

    2022年6月22日
    44
  • 《代码大全》阅读笔记-33-个人性格(personal character)

    《代码大全》阅读笔记-33-个人性格(personal character)

    2021年6月20日
    80
  • Linux Platform devices 平台设备驱动

    Linux Platform devices 平台设备驱动platform平台设备驱动是基于设备总线驱动模型的,它只不过是将device进一步封装成为platform_device,将device_driver进一步封装成为platform_device_driver,前面已经分析过设备总线驱动模型,关于device与device_driver的注册过程以及它们在sysfs文件系统中的层次关系就不在分析,本文重点分析platform平台

    2022年7月24日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号