zip([iterable, ...])
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。 若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)。 一,把list使用zip创建一个元组对的列表
list1 = [1,2,3,4]
list2 = [5,6,7,8]
print zip(list1,list2)
#输出结果是 [(1, 5), (2, 6), (3, 7), (4, 8)]
二:利用for循环支持并行迭代
list1 = [1,2,3,4]
list2 = [5,6,7,8] for (x,y) in zip(list1,list2):
print (x,y, "==",x+y)
# 输出结果是:
# (1, 5, '==', 6)
#(2, 6, '==', 8)
#(3, 7, '==', 10)
#(4, 8, '==', 12)

三:把字符串转换为元组的列表

当两个字符串的长度不同时,zip会以最短序列的长度为准来截断所得到的元组 列表

str1 = "abcd"
str2 = ""
print zip(str1,str2)

输出结果是:[('a', '1'), ('b', '2'), ('c', '3'), ('d', '4')]

四:把元组转换为元组的列表

t1 = (1,2,3)
t2 = (4,5,6)
t3 = (7,8,9)
print list(zip(t1,t2,t3))

输出结果是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

五:使用zip构造字典

方法一:使用for循环

k = ["a","b","c"]
v = ["","",""]
d2 = {}
for (k,v) in zip(k,v):d2[k]=v
print d2

方法er:使用dict

k = ["a","b","c"]
v = ["","",""]
d3 = dict(zip(k,v))
print d3

方法一和方法二的输入结果都是  {'a': '1', 'c': '3', 'b': '2'}

六:矩阵的行列互换

第一种方法

  有一个由列表描述的二维矩阵   a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

  通过python列表推导的方法,我们也能轻易完成这个任务

print [ [row[col] for row in a] for col in range(len(a[0]))]

  输出结果是:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

第二种方法:

 a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print zip(*a) 输出结果是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)] print map(list,zip(*a)) 输出结果是:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

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

Python zip Python zip函数的更多相关文章

  1. python中使用zip函数出现<zip object at 0x02A9E418>

    在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...

  2. Python中的zip()与*zip()函数详解

    前言 实验环境: Python 3.6: 示例代码地址:下载示例: 本文中元素是指列表.元组.字典等集合类数据类型中的下一级项目(可能是单个元素或嵌套列表). zip(*iterables)函数详解 ...

  3. Python常用内置函数整理(lambda,reduce,zip,filter,map)

    匿名函数lambda lambda argument1,argument2,...argumentN :expression using arguments 1.lambda是一个表达式,而不是一个语 ...

  4. Python:内置函数zip()

    zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象. 这个可迭代对象可以使用循环的方式列出其元素 若多个可迭代对象的长度不一致,则所返回的 ...

  5. (python函数04)zip(*sorted(zip()))

    zip(*sorted(zip())) 用这个玩意儿可以以对两个迭代对象进行排序. 示例代码01  cnts = [2, 4, 3, 6, 5] boundingBoxes = [(730, 20, ...

  6. python中的zip、lambda、map操作

    python 中有几个比较酷炫的操作,比如:zip.lambda.map 一.zip操作 zip字面意思:拉链.这么来记,把几个东西扔到一个包里,拉上拉链,就算打包好了.通俗点讲,就是把第1个参数.与 ...

  7. Python中zip()与zip(*)的用法

    目录 Python中zip()与zip(*)的用法 zip() 知识点来自leetcode最长公共前缀 Python中zip()与zip(*)的用法 可以看成是zip()为压缩,zip(*)是解压 z ...

  8. 一篇文章掌握 Python 内置 zip() 的全部内容

    一篇文章掌握 Python 内置 zip() 的全部内容 zip() 是 Python 中最好用的内置类型之一,它可以接收多个可迭代对象参数,再返回一个迭代器,可以把不同可迭代对象的元素组合起来. 我 ...

  9. Python: 字典dict: zip()

    problem: 怎样在数据字典中执行一些计算操作(比如求最小值.最大值.排序等等)? answer: eg1: 考虑下面的股票名和价格映射字典: prices = {'ACME': 45.23,'A ...

随机推荐

  1. Ubantu Mark

    说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装.卸载和删除的方法. 一.U ...

  2. 控制台+Owin搭建WebAPI接口服务

    当没有iis环境.想快速启动几个api接口测试又觉得新建一个api项目麻烦?来使用控制台做宿主,快速改几个api测试吧! 1.新建控制台项目 2.安装以下相关依赖 Microsoft.AspNet.W ...

  3. 5 Best Gantt Chart JIRA Plugins

    Andrew Stepanov/June 23, 2017/6 minutes Software developers enjoy using JIRA software for their proj ...

  4. scrapy-splash抓取动态数据例子一

    目前,为了加速页面的加载速度,页面的很多部分都是用JS生成的,而对于用scrapy爬虫来说就是一个很大的问题,因为scrapy没有JS engine,所以爬取的都是静态页面,对于JS生成的动态页面都无 ...

  5. 《javascript高级程序设计》读书笔记(四)引用类型

    第五章:引用类型 Object类型 创建object实例的两种方式: 1.new方式 var person = new Object(); person.name = "haozk" ...

  6. ispy 编译笔记

    xcopy "$(ProjectDir)dlls\$(PlatformName)\*.*" "$(ProjectDir)$(OutDir)" /Y if NOT ...

  7. 安装程序集'' policy.8.0.microsoft.vc80.atl,type=''win32-

    ThinkPad Bluetooth with Enhanced Data Rate II 软件 在Windows 7 64-bit 下无法安装完成,弹出窗口提示 :安装程序集''policy.8.0 ...

  8. zabbix_zatree第三方插件

    1.下载zatree第三方插件https://github.com/spide4k/zatree.git 2.检查PHP环境需要支持php-xml.php-gd.php-mysql 3.先备份当前za ...

  9. Solidworks如何让齿轮运动副保证持续啮合状态

    出现这种情况一般是齿轮的比例有问题,如果你选择两个齿轮的齿顶圆的面,则自动比例是44:74,然后手动转动某个齿轮,就会出现不能啮合的情况   只要模数相同的齿轮不管大小都能始终啮合,但是你需要首先为每 ...

  10. 如何安装MySQL软件

    1 双击EXE进行安装,在"Developer Components(开发者部分)"上左键单击,选择"This feature, and all subfeatures, ...