集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 3600|回复: 6

Python的zip函数

[复制链接]
晓灰灰 发表于 2018-12-3 09:36:46 | 显示全部楼层 |阅读模式
       
        大家好,又到了每日学习的时间了,最近博主在和python打交道,今天我们来聊一聊python一些基础的东西,Python的zip函数.

        前言

        查看python代码的时候看到zip函数,不理解其内容,看到一篇博客讲的很简单明了,直接拿过来学习啦~


        zip解析

        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的兼容性问题及语法问题;

参考

       
 楼主| 晓灰灰 发表于 2018-12-3 09:37:13 | 显示全部楼层
:):):):):)
zhangyukun 发表于 2018-12-4 09:11:59 | 显示全部楼层
Python的zip函数
 楼主| 晓灰灰 发表于 2018-12-4 13:53:13 | 显示全部楼层
Python的zip函数
 楼主| 晓灰灰 发表于 2018-12-5 11:54:38 | 显示全部楼层
Python的zip函数
 楼主| 晓灰灰 发表于 2018-12-7 11:49:23 | 显示全部楼层
Python的zip函数
 楼主| 晓灰灰 发表于 2018-12-12 13:44:23 | 显示全部楼层
Python的zip函数
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-23 15:45 , Processed in 0.061600 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表