专栏首页python前行者python zip()方法

python zip()方法

>>> name=('jack','beginman','sony','pcky')
>>> age=(2001,2003,2005,2000)
>>> for a,n in zip(name,age):
           print(a,n)
输出:
jack 2001
beginman 2003
sony 2005
pcky 2000
all={"jack":2001,"beginman":2003,"sony":2005,"pcky":2000}
for i in all.keys():
    print i,all[i]

输出:
sony 2005
pcky 2000
jack 2001
beginman 2003

最显而易见的是:第一种简洁、灵活、而且能顺序输入。

zip()函数

它是Python的内建函数,(与序列有关的内建函数有:sorted()、reversed()、enumerate()、zip()),其中sorted()和zip()返回一个序列(列表)对象,reversed()、enumerate()返回一个迭代器(类似序列)

s=[2,1]
>>> type(sorted(s))
<type 'list'>
>>> type(zip(s))
<type 'list'>
>>> type(reversed(s))
<type 'listreverseiterator'>
>>> type(enumerate(s))
<type 'enumerate'>

那么什么是zip()函数 呢?

我们help(zip)看看:

>>> help(zip)
Help on class zip in module builtins:

class zip(object)
 |  zip(iter1 [,iter2 [...]]) --> zip object
 |
 |  Return a zip object whose .__next__() method returns a tuple where
 |  the i-th element comes from the i-th iterable argument.  The .__next__()
 |  method continues until the shortest iterable in the argument sequence
 |  is exhausted and then it raises StopIteration.
 |
 |  Methods defined here:
 |
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |
 |  __iter__(self, /)
 |      Implement iter(self).
 |
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  __next__(self, /)
 |      Implement next(self).
 |
 |  __reduce__(...)
 |      Return state information for pickling.

不懂的一定多help

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

>>> z1=[1,2,3]
>>> z2=[4,5,6]
>>> result=zip(z1,z2)
>>> result
[(1, 4), (2, 5), (3, 6)]
>>> z3=[4,5,6,7]
>>> result=zip(z1,z3)
>>> result
[(1, 4), (2, 5), (3, 6)]
>>> 

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

>>> zip(*result)
[(1, 2, 3), (4, 5, 6)]

只有一个list的情况:

x = [1, 2, 3]
x = zip(x)
print (x)

运行的结果是:
[(1,), (2,), (3,)]

特别注意:在文件读写中也可以运用zip函数

f = open('/home/xbwang/Desktop/id_title','r')
f1 = open('/home/xbwang/Desktop/res','r')
f2 = open('/home/xbwang/Desktop/pos','r')
f3 = open('/home/xbwang/Desktop/cut_pos1','a')
for line,line1,line2 in zip(f,f1,f2):
    line = line[:-1]
    line1 = line1[:-1]
    f3.write(line+'     '+line1+'     '+line2)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python实现简单的一个刷票点赞功能

    投票网址:http://best.zhaopin.com/?sid=121128100&site=sou

    周小董
  • Redis总结-配置、持久化、复制

    Redis的配置主要放置在redis.conf,可以通过修改配置文件实现Redis许多特性,比如复制,持久化,集群等。

    周小董
  • linux的nohup命令的用法

    在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/lo...

    周小董
  • -bash: zip: command not found提示解决办法

    吾爱乐享
  • 推荐一个操作Zip文件的开源类库:DotNetZip

    本文转载:http://www.cnblogs.com/carysun/archive/2009/02/11/DotNetZip.html

    跟着阿笨一起玩NET
  • Python中zip()函数的解释和可视化

    返回一个元组迭代器,其中第i个元组包含每个参数序列或可迭代对象中的第i个元素。当最短的可迭代输入耗尽时,迭代器将停止。使用单个可迭代参数,它将返回1元组的迭代器...

    统计学家
  • 11.python zip函数

    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,返回的结果可以直接强转为list列表,这样做的好处...

    猿说编程[Python和C]
  • 简单瞅瞅Python zip()函数

    返回一个zip对象,其.__ next __()方法返回一个元组,其中第 i 个元素分别来自各可迭代对象的第 i 个参数。.__ next __()方法一直持续...

    py3study
  • Python zip() 函数

    zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。如果各个可迭代对象的元素个数不一致,则返回的对象长度...

    于小勇
  • 如何在类Unix系统上使用ZIP命令进行本地提权

    本文我将告诉大家如何使用Zip命令进行本地提权。Zip是一个简单的基于平台的文件打包和压缩实用程序,适用于类Unix系统,如Linux,Windows等。

    FB客服

扫码关注云+社区

领取腾讯云代金券