晓灰灰 发表于 2018-12-3 09:36:46

Python的zip函数

       
        大家好,又到了每日学习的时间了,最近博主在和python打交道,今天我们来聊一聊python一些基础的东西,Python的zip函数.

        前言

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


        zip解析

        zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:
        1.示例1:
        x =
        y =
        z =
        xyz = zip(x, y, z)
        print(xyz)

        运行结果:
        [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
        从这个结果可以看出zip函数的基本运作方式。

        2.示例2:
        x =
        y =
        xy = zip(x, y)
        print xy
       
        运行的结果是:
        [(1, 4), (2, 5), (3, 6)]
        从这个结果可以看出zip函数的长度处理方式。

        3.示例3:
        x =
        x = zip(x)
        print x

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

        4.示例4:
        x = zip()
        print x

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

        5.示例5:
        x =
        y =
        z =
        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 =
        r = zip(* * 3)
        print r
       
        运行的结果是:
        [(1, 1, 1), (2, 2, 2), (3, 3, 3)]

        它的运行机制是这样的:
        生成一个列表的列表,它只有一个元素x
        * 3生成一个列表的列表,它有3个元素,
        zip(* * 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]
查看完整版本: Python的zip函数