Python学习之zip函数的用法

OpenCV图像拼接实战:用SIFT+透视变换打造无缝全景图(附完整代码) 本文详细介绍了使用OpenCV和SIFT算法实现图像拼接的全过程,包括特征匹配、透视变换和高级融合技术。通过实战代码演示,帮助开发者掌握无缝全景图生成的核心技术,适用于旅行摄影、无人机航拍等多种场景。 阅读详情
   相信很多小伙伴在学习Python的时候遇到zip( )这个函数,在使用的时候对于结果很满意,但是并不知道为什么会产生这样的结果,很好用,但是原理搞不清楚,下面就让我给大街揭开zip( )的神秘面纱吧!

   我们先来看一看官方的API对于zip( )函数的说明:
这里写图片描述

   官方的API 上都是英文的,大家也许看的头都大了,通俗一点的说就是:zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用“*”号操作符,可以将list unzip(解压)。

   光说不练假把式,下面我们就来几个例子更深入的理解一下zip函数。

  1. Demo1
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. Demo2

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

运行结果为:[(1, 4), (2, 5), (3, 6)] ,从这个结果可以看出zip函数的长度处理方式,当两个或多个对象的长度不相等时,会按着长度最短的那个对象的长度作为迭代终止条件。
3. Demo3

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

运行的结果是:[(1,), (2,), (3,)] ,从这个结果可以看出zip函数在只有一个参数时运作的方式。
4. Demo4

x = zip()
print(x)

运行的结果是:[ ] ,从这个结果可以看出zip函数在没有参数时运作的方式。
5. Demo5

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

运行的结果是:
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
下面我们来分析一下为什么会产生这样的结果:
一般认为这是一个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. Demo6

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)
7. Demo7

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]]

同样利用zip()函数也可以得到同样的结果:

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

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

   以上就是小编在学习zip( )函数的时候遇到的一些问题,和zip( )函数的一些常用用法,不是很全面,希望能对各位同学学习Python的时候有所帮助吧!!!!

计算机组成原理(第三版)唐朔飞-第五章输入输出系统-课后习题 阅读详情

相关推荐

12V转5V稳压电路详细分析(7805三端稳压,LM2596稳压)

7805线性三端稳压 DCDC的意思是直流变到直流(不同直流电源值的转换),只要符合这个定义都可以叫DCDC转换器,或称之为开关电源或开关调整器。 7805属于常用的线性三端稳压器,输入电压范围不大于35V,输入输出压差2V,最大输出电流1.5A,下图为原理图,其原理简单,使 用方便,深受很多用户的喜爱。但是其不足之处就是效率低,特别是压差越大时其效率越低。比如这里12V转5V的效率为 5V/12V≈41.7%。 如上电路是最经典的7805稳压5V电路,电路中有两个电容,电容的作用如下: ...

a2001444的博客 9万+

python中zip()函数基本用法

zip()函数接受一系列可迭代对象作为参数,将不同对象中相对应的元素打包成一个元组(tuple),返回由这些元组组成的list列表,如果传入的参数的长度不等,则返回的list列表的长度和传入参数中最短对象的长度相同。 举例1 x = [1,2,3,4,5] y = ['a','b','c','d'] xy = zip(x,y) print xy for a...

weixin_30472035的博客 1755

从0开始学GEE python——Google Earth Engine (GEE) 和 geemap 库来获取 Sentinel-2 卫星影像,并将其可视化

这段代码的目的是从 Sentinel-2 卫星影像中获取特定地点的影像,并将其可视化在地图上。通过设置合适的波段和可视化参数,用户可以清晰地查看该地区的卫星影像。

此星光明博客 1167

phthon中的zip()函数理解

zip就是把2个数组糅在一起 x=[1, 2, 3, 4, 5 ] y=[6, 7, 8, 9, 10] zip(x, y)就得到了 [(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)] 比如有2组坐标,如果想两两对应的相加,那么zip函数就很有用了。 再比如,有2个数组A,B,A存了班级里的人的名字,B是每个人的考试分数,如果需要通过某个人的名字来查考试分数,那...

auspark的专栏 839

modbus

从机地址 功能码 起始地址高位 起始地址低位 数量高位 数量低位 字节数 0001H高位 0001H低位 0002H高位 0002H低位 CRC高位 CRC低位。每个输入寄存器的长度为2个字节。其中,CDH对应线圈0013H到001AH的内容,01H对应线圈001B到001CH的内容,未使用位用0填充。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。

lunhuicnm的博客 9748

智能车竞赛走马观碑组:如何高效识别目标板并优化绕行策略(附实战代码)

本文深入探讨了智能车竞赛走马观碑组中,如何构建从图像识别到路径决策的全栈优化方案。针对目标板识别与绕行策略的核心难点,文章详细解析了基于MobileNetV2的高效识别流水线、结合预瞄点与纯追踪算法的平滑路径规划,以及横向与纵向协同控制策略,并提供了实战代码与调试指南,旨在全面提升小车的比赛表现。

o5p6q的博客 884

Python中zip()函数用法举例

定义:zip([iterable, …]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压),看下面的例子就明白了: >> a = [1,2,3] >

腾云 4799

【数据库系统工程师】5.4Internet基础知识

目录一、思维导图二、知识点1.Internet 概述2.Internet 地址(1)域名(2)IP 地址(3)NAT技术(4)IPv6简介3.Internet 服务(1)域名服务(2)远程登录服务(3)电子邮件服务(4)WWW服务(5)文件传输服务 一、思维导图 二、知识点 1.Internet 概述 2.Internet 地址 (1)域名 ○ 一个完整、通用的层次型主机域名由如下4部分组成: 计算机主机名.本地名.组名.最高层域名 (2)IP 地址 ○ 每个IP地址都由4个小于256的数字组成,数字之

邓邓子的博客 911

Python使用技巧(十):zip(x,y)模块

一、利用zip函数将两个列表(list)组成字典(dict) keys = ['a', 'b', 'c'] values = [1, 2, 3] dictionary = dict(zip(keys, values)) print(dictionary) 二、 合并两列表 a = [1, 2, 3] b = (4, 5, 6) z = zip(a, b) for i in z: print(i) 按行输出: a = [ [1,2,3], [4,5,6], [7,8,9] ] for v in

源代码杀手的博客 4097

华为OD机试真题 新系统 - 8位LED控制器 (Java/Py/C/C++/Js/Go)

本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。

算法大师! 1975

嵌入式系统开发笔记101:STM32CubeIDE安装过程中的2个错误及其解决方法

STM32CubeIDE在安装过程中,遇到了2个错误,本文阐述其解决方法。产生上述错误的原因,都在于中文。STM32CubeIDE不能很好的支持中文,所以在使用STM32CubeIDE进行项目设计的过程中,不要使用中文,包括项目所在的路径。

snmplink的博客 8555

python的zip()函数

原帖地址:[Python的zip函数](https://www.cnblogs.com/frydsh/archive/2012/07/10/2585370.html) 防止删帖,复制一波 Python的zip函数 .

鱼香肉丝没有鱼的博客 294

120、NPU的Mythic M1076:模拟存算一体NPU

这篇文章分享了作者调试Mythic M1076模拟存算一体NPU的实战经验,主要包含以下要点: 硬件设计陷阱:参考电压输入必须使用低ESR电容,普通贴片电容会导致模拟计算阵列工作异常。 核心技术原理: 采用真正的存算一体架构,将权重存储为模拟电压 使用浮栅晶体管存储权重,通过电流叠加实现乘法运算 包含108个计算单元阵列(Tile),每个256×256规模 使用注意事项: 编程模型特殊,需要依赖SDK自动映射网络层 存在6-8位有效精度限制,需用量化感知训练 功耗特性独特,静态偏置电流占主要功耗 调试手段有

m0_50546716的博客 122

zip的用法python_Python学习之zip函数的用法

相信很多小伙伴在学习Python的时候遇到zip( )这个函数,在使用的时候对于结果很满意,但是并不知道为什么会产生这样的结果,很好用,但是原理搞不清楚,下面就让我给大街揭开zip( )的神秘面纱吧!我们先来看一看官方的API对于zip( )函数的说明: 官方的API 上都是英文的,大家也许看的头都大了,通俗一点的说就是:zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将...

weixin_32136817的博客 525

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Python zip函数及用法【小白学习Python必备知识】

zip() 函数是 Python 内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串以及 range() 区间构成的列表)“压缩”成一个 zip 对象。所谓“压缩”,其实就是将这些序列中对应位置的元素重新组合,生成一个个新的元组。 和 Python 3.x 版本不同,Python 2.x 版本中的 zip() 函数会直接返回列表,而不是返回 zip 对象。但是,返回的列表或者 zip 对象,其包含的元素(都是元组)是相同的。 zip() 函数的语法格式为: zip(iterable, …)

weixin_50181817的博客 652

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python学习笔记:内置函数zip用法举例

值得考虑的是,传给 zip() 的可迭代对象可能长度不同;极端例子是只有一个可迭代对象参数,zip() 会返回一个一元组的迭代器。zip() 是延迟执行的:直至迭代时才会对元素进行处理,比如 for 循环或放入 list 中。zip() 返回元组的迭代器,其中第 i 个元组包含的是每个参数迭代器的第 i 个元素。这类似于 “矩阵转置”。[(1, 4, 7), (2, 5, 8), (3, 6, 9)] #列表嵌套元组。[[1, 4, 7], [2, 5, 8], [3, 6, 9]] #列表嵌套。

weixin_44073289的博客 786

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Python学习:zip()函数的用法

Python学习:zip()函数的用法

Python热爱者的博客 3248

python学习——zip()函数的用法

1、zip()函数将序列进行组合,形成一个元组序列,举例如下:a = [1,2,3,4] b = [5,6,7,8] c = list(zip(a,b)) print(c)结果如下:[(1, 5), (2, 6), (3, 7), (4, 8)]将两个序列的元素按照索引的位置一一对应,形成一个元组序列。2、如果序列的长度不一致会出现什么现象?a = [1,2,3,4] b = [5,6,7,8,9]

geerniya的博客 686

python3 入门学习教程之zip()函数的详细用法

zip函数 zip()函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。 如果各个可迭代对象的元素个数不一致,则返回的对象长度与最短的可迭代对象相同。利用*号操作符,可以将元组解压为列表。 zip函数解压示例 搭配for循环的用法 ...

MC_XY的博客 492

python zip函数的用法_科学网—Python学习笔记——zip函数的使用 - 陈振玺的博文...

Python学习笔记——zip函数的使用声明:本博文纯是个人(Python新手)对自己学习Python的一个笔记与课后预习,并未一个程序员老手的经验之谈。所以在写作中难免很多疏漏甚至于简单的错误,若有大神恰巧路过,还望指正一二,本人感激不尽!zip函数接受任意多个列表的输入,返回一个以元组(tuple)为元素的列表[1]。在Python的定义中,元组通过小括号表示,列表通过中括号表示,其中列表可以...

weixin_39533307的博客 285

Python 常见函数的基本使用(边学边更)

最近在学习Python,所谓好记性不如烂笔头故借这次学习机会做个笔记,方便今后快速再学习。以下是常见函数的使用说明: range函数 该函数用于创建数列,根据参数个数的不同对应不同用法进行说明 (1)range(a, b, c) 三个参数时,表示创建一个从a~b-1的数组,每c个数取一个值。当c=1时,可省略c,即用法等同于(2) (2)range(x, y) 两个参数时,表示创建一个从a~b-...

Hello_Chan的博客 506

python zip函数的用法_Python的zip()函数是什么

zip() 函数可以把两个列表“压缩”成一个 zip 对象(可迭代对象),这样就可以使用一个循环并行遍历两个列表。为了测试 zip() 函数的功能,我们可以先在交互式解释器中“试验”一下该函数的功能。>>> a = ['a','b','c']>>> b = [1, 2, 3]>>> [x for x in zip(a,b)][('a', 1), ('b', 2), ('c', 3)]从上面的测试结...

weixin_39905624的博客 278

python zip,lambda,map函数

python zip,lambda,map函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 感谢莫烦老师 详情 zip 通常用于将两个列表合并在一起以同时进行迭代遍历 注意:直接使用zip输出结果为<zip at 0x1d72cf30bc8>,要配合list一起使用 a = [1, 2, 3] b = [4, 5, 6] zip(a,b) # <zip at ...

泛用演化计算、通用人工智能优化模型 547

详解Python中的 zip、zip(*)、map、reduce、filter

其他关于Python的总结文章请访问:https://blog.youkuaiyun.com/qq_38962621/category_10299380.html> 详解Python中的 zip、zip(*)、map、reduce、filter zip和zip(*) zip() 函数接受(零个)、一个、多个可迭代对象(iterable)为参数,将这些 iterable 合并成一个tuple,返回一个对象,可以使用 list 将返回的 zip 对象转换成列表,列表的长度是所有传入的 iterable 对象中可迭代最

超级超级小天才的博客 520

python中的zip函数用法

python中zip函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短的参数序列的长度。只有一个序列参数时,它返回一个1元组的列表。没有参数时,它返回一个空的列表。概括起来一句话: zip函数返回的是一个列表,但是列表里面的元素是由一个个元组构成的..import numpy as np X = mat(array([[2, 4.3], ...

qq_20880939的博客 1274

python zip函数的用法_【python入门课|Python zip函数使用方法公布,能解决80%的python流程问题】- 环球网校...

【摘要】在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注python相关问题,今天环球网校的小编就来和大家讲讲Python zip函数。zip() 函数是 Python 内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串以及 range() 区间构...

weixin_39568781的博客 177
上一篇: Python学习之numpy札记
下一篇: Tensorflow中的模型持久化
Zz_Krystal
博客等级 码龄10年 36粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值