ginseachen的个人博客分享 http://blog.sciencenet.cn/u/ginseachen

博文

Python学习笔记——zip函数的使用

已有 18283 次阅读 2015-11-14 16:45 |系统分类:科研笔记|关键词:学者

Python学习笔记——zip函数的使用

声明:本博文纯是个人(Python新手)对自己学习Python的一个笔记与课后预习,并未一个程序员老手的经验之谈。所以在写作中难免很多疏漏甚至于简单的错误,若有大神恰巧路过,还望指正一二,本人感激不尽!

    zip函数接受任意多个列表的输入,返回一个以元组(tuple)为元素的列表[1]。在Python的定义中,元组通过小括号表示,列表通过中括号表示,其中列表可以修改,而元组不可以修改[2]。通过Python的help命令,我们可以得到zip函数的具体解释为“Return a list of tuples, where each tuple contains the ith element from each of the argument sequences.  The returned list is truncated in length to the length  of the shortest argument”其大致意思就是分别提取N个列表的第i个元素组成一个元组,然后再将这些元组作为基本元素构成一个列表,其中列表的长度与最短的列表一致,具体见下面的示例:

  • Example 1

name = ["Fitz","Jemma"]

Add=["NY","Washington"]

z=zip(name, Add)

print z

[("Fitz","NY"),("Jemma","Washington")]

  • Example 2

name = ["Fitz","Jemma"]

Add=["NY","Washington","Seatle"]

z=zip(name, Add)

print z

[("Fitz","NY"),("Jemma","Washington")] #输出的列表长度与最短的输入列表一致

此外,若输入列中中的元素为字符串,zip还可以对其进行迭代处理,比如

  • Example 3

name = ["Fitz","Jemma"]

Add=["NY","Washington","Seatle"]

z=zip(name[0], Add[0])#列表的索引从0开始,0表示分别对name和Add的第一个元素进行迭代输出

print z

[('F', 'N'), ('i', 'Y')] #输出的列表长度与最短的字符串一致

若输入列表中的元素为数字,则上述操作会报错,具体如下所示:

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

报错:

Traceback (most recent call last):
 File "D:/Other Softwares/Python/exc/skill.py", line 34, in <module>
   z=zip(x[0],y[0])
TypeError: zip argument #1 must support iteration 表示输入的目标必须是可以迭代处理的。

最后,还值得注意的是,zip函数的输入对象除列表以外,还可以是元组,但其输出均是以元组为元素的列表。


参考文献

[1]http://www.cnblogs.com/frydsh/archive/2012/07/10/2585370.html  

[2]http://www.cnblogs.com/moomu/archive/2011/11/14/2247810.html  



https://m.sciencenet.cn/blog-1334016-935211.html

上一篇:Unix文件处理——获得比对到目标数据库中的序列数目
下一篇:Python学习笔记——一个简单网络爬虫的编写以及对应模块的学习

1 蒋德明

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-28 21:38

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部