python zip()函数用法

python zip()函数用法

大家好,又见面了,我是全栈君。

zip() –内建函数

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

与dict() 连用,可完成list组合成字典;

注:python3目前zip函数print输出不能正常显示,显示如:<zip object at 0x0000000002598548>

 

用法示例:

读者看看下面的例子,对zip()函数的基本用法就可以明白了:

 1 >>> a = [1,2,3]
 2 >>> b = [4,5,6]
 3 >>> c = [4,5,6,7,8]
 4 >>> n = zip(a,b)
 5 [(1, 4), (2, 5), (3, 6)]
 6 >>> zip(a,c)
 7 [(1, 4), (2, 5), (3, 6)]
 8 >>> zip(a)
 9 [(1,), (2,), (3,)]
10 >>> zip(*n)
11 [(1, 2, 3), (4, 5, 6)]

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

 

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

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

 

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

这个运行机制是这样的:

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

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

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

 

转载于:https://www.cnblogs.com/feiyueNotes/p/8322340.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107745.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MacBook 屏幕录制 soundflower 只录内屏声音 无外界声音

    MacBook 屏幕录制 soundflower 只录内屏声音 无外界声音MacBook屏幕录制只包含内屏声音无外界录音目的录屏方法办法目的用Mac自带的QuickTimePlayer录制屏幕的时候(或者按快捷键⇧+⌘+5),三个选项:1)无声音2)选外置扬声器。电脑外放,确实能录到内屏声音,但是扬声器收录的人声、环境音也会录进来3)插耳机后,可以选择耳机。这样内屏声音也没了,只有耳机口的收音被录进来录屏方法办法下载插件soundflower:soundflower下载地址一开始可能下载失败,提示“来自开发者MATTINGALLS的系统软件已被阻止载

    2022年5月2日
    564
  • Rabbitmq启动方式

    Rabbitmq启动方式Rabbitmq启动方式1以应用方式启动rabbitmq-server-detached后台启动Rabbitmq-server直接启动,如果你关闭窗口或者需要在改窗口使用其他命令时应用就会停止关闭:rabbitmqctlstop2、以服务方式启动(安装完之后在任务管理器中服务一栏能看到RabbtiMq)rabbitmq-serviceinstall安装服务…

    2025年8月1日
    5
  • 图论】(单源最短路径)Bellman-Ford算法

    图论】(单源最短路径)Bellman-Ford算法

    2021年9月28日
    38
  • 【网页设计的12种颜色】「建议收藏」

    前不久,ColourLovers.com公布了一项调查结果。他们发…

    2022年1月18日
    38
  • [股票预测]股票历史数据获取[通俗易懂]

    [股票预测]股票历史数据获取[通俗易懂]一、编程环境准备第一步:安装Anaconda3;第二步:安装工具包Pandas、tusharepipinstallPandaspipinstalltushare第三步:查看Pandas、tushare版本piplistpandas1.2.4tushare1.2.64二、股票历史行情数据提取2.1获取近3年个股日线交易数据通过参数设置获取日k线、周k线、月k线,…

    2022年6月24日
    37
  • 最短路径问题—Floyd算法详解[通俗易懂]

    最短路径问题—Floyd算法详解[通俗易懂]前言Geniusonlymeanshard-workingallone’slife.Name:WillamTime:2017/3/81、最短路径问题介绍问题解释:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:迪杰斯特拉算法(Dijkstra算法)弗洛伊德算法(Floyd算法)SPFA算法之前已经对Di

    2022年6月4日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号