当前位置:首页 > 编程问答 >

Python中的zip函数用法是什么

提问时间:2020年06月17日 10:53:19问题被 83 网友关注
共 1 个关于“Python中的zip函数怎么用”精选答案
码小辫
推荐于:2020-06-17
最佳回答

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。

直接看示例:

1.示例1:

代码如下:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
print xyz

运行的结果是:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

从这个结果可以看出zip函数的基本运作方式。

2.示例2:

代码如下:

x = [1, 2, 3]
y = [4, 5, 6, 7]
xy = zip(x, y)
print xy

运行的结果是:

代码如下:

[(1, 4), (2, 5), (3, 6)]

从这个结果可以看出zip函数的长度处理方式。

3.示例3:

代码如下:

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

运行的结果是:

代码如下:

[(1,), (2,), (3,)]

从这个结果可以看出zip函数在只有一个参数时运作的方式。

4.示例4:

代码如下:

x = zip()
print x

运行的结果是:

代码如下:

[]

从这个结果可以看出zip函数在没有参数时运作的方式。

5.示例5:

代码如下:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
u = zip(*xyz)
print u

运行的结果是:

代码如下:

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

一般认为这是一个unzip的过程,它的运行机制是这样的:

在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))

所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

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

6.示例6:

代码如下:

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

运行的结果是:

代码如下:

[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

它的运行机制是这样的:

[x]生成一个列表的列表,它只有一个元素x

[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]

zip(* [x] * 3)的意思就明确了,zip(x, x, x)

参考资料

  • Python网络爬虫从入门到实践出版社:机械工业出版社 作者:唐松/陈智铨
  • 从芯片到云端:Python物联网全栈开发实践出版社:电子工业出版社 作者:刘凯
  • Python数据分析与应用出版社:人民邮电出版社 作者:黄红梅 张良均
  • Python Cookbook出版社:人民邮电出版社 作者:比斯利
  • Python微服务开发出版社:清华大学出版社 作者:塔里克·齐亚德
  • 相关问题

  • Python中sqrt函数使用方法01-22
  • 如何解决Python中open()函数打开文件路径报错问题01-20
  • Python不使用int()函数把字符串转换为数字实例讲解08-03
  • python的index函数用法 详解python中的index函数用法08-06
  • python利用Future对象回调别的函数知识点总结11-06
  • Python3中函数参数传递方式浅析12-07
  • python过滤器和lambda函数如何使用02-22
  • Python iter()函数用法详解06-04
  • 详解Python函数any()和all()的用法和区别09-14
  • 如何理解Python匿名函数02-09
  • python中的Turtle函数库用法整理08-16
  • Python函数中函数定义,参数,调用03-22
  • 基于Python递归函数实现二分查找算法01-23
  • python中的高效迭代器函数用法总结08-30
  • Python自定义函数与Python函数返回值详解10-24
  • 更多答案
    网友NO.687645

    08-26

    python如何压缩新文件到已有ZIP文件, 本文为大家分享了python压缩新文件到已有ZIP文件的具体代码,供大家参考,具体内容如下 要点在于使用Python标准库zipfile创建压缩文件时,如果使用'a'模式时,可以追加新内容。 from zipfile import ZipFilefrom os import listdirfrom os.path import isfile, isdir, joindef addFileIntoZipfile(srcDir, fp): #遍历该文件夹中所有文件 for subpath in listdir(srcDir): subpath = join(srcDir, subpath) if isfile(subpath): #如果是文件就直接压缩到ZIP文件 fp.write(subpath) elif isdir(subpath): #如果是子文件夹就先写入子文件夹名 #然后再递归调用函数 #把所有文件都压缩进入ZIP文件 fp.write(subpath) addFileIntoZipfile(subpath, fp)def zipCompress(srcDir, desZipfile): with ZipFile(desZipfile, mode='a')……

    网友NO.851155

    08-26

    python解决Fedora解压zip时中文乱码的方法, 前言 很多时候在windows下压缩文件没问题,但是到了Linux下,出现乱码,很常见。以前在Ubuntu下,用 `unzip -O GBK filename.zip` 就可以搞定。 换了Fedora后,暂时没发现乱码的压缩文件。晚上下载一本书的光盘,又碰到了乱码。尝试之前的方法没成功。看了下unzip的help,没-O那个参数了== 刚好找到一个用python解决的办法,分享下。 新建一个`.py`后缀的文件,直接复制粘贴代码: #!/usr/bin/env python# -*- coding: utf-8 -*- import osimport sysimport zipfile print "Processing File " + sys.argv[1] file=zipfile.ZipFile(sys.argv[1],"r");for name in file.namelist(): utf8name=name.decode('gbk') print "Extracting " + utf8name pathname = os.path.dirname(utf8name) if not os.path.exists(pathnam……

    网友NO.774697

    06-03

    python使用zip将list转为json的方法, zip()函数将可迭代对象作为参数,并打包成元组,返回的是一个个zip对象,可以使用list或dict转换返回结果,使用*zip可以将打包的对象分解成列表 l=[1,2,3,4] keys=['a','b','c','d'] zip(keys,l)zip object at 0x000001E0AFA327C8 dict(zip(keys,l)){'a': 1, 'b': 2, 'c': 3, 'd': 4} list(zip(keys,l))[('a', 1), ('b', 2), ('c', 3), ('d', 4)]# 若参数列表的长度不一样,则以最短长度为准 m=[1,2,3] list(zip(keys,m))[('a', 1), ('b', 2), ('c', 3)]# 分解zip a1,a2=zip(*zip(keys,l)) a1('a', 'b', 'c', 'd') a2(1, 2, 3, 4) 将二维列表转成json import json l=[[1,2,3,4],[5,6,7,8],[9,10,11,12]] keys=['a','b','c','d'] list_json=[dict(zip(keys,item)) for item in l]# indent缩进量,ensure_ascii=False支持中文 str_json=json.dumps(list_json,ind……

    <
    1
    >

    Copyright 2018-2020 www.xz577.com 码农之家

    版权投诉 / 书籍推广 / 赞助:520161757@qq.com

    idea注册码