• 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)

  • 相关阅读:
    Jdk1.7 与 jdk1.8的区别,最新的特征有哪些(美团,360,京东面试题目)
    Android利用zxing生成二维码
    Android 事件传递机制
    Android 如何让EditText不自动获取焦点&隐藏软键盘
    Android--控件的滑动事件
    解决Android3.0之后不能在主线程中进行HTTP请求
    JavaIO 思维导图
    MySQL的注释方法
    MySQL——约束(constraint)详解
    自动回复之实现随机回复与常用Mapper XML标签
  • 原文地址:https://www.cnblogs.com/feiyueNotes/p/8322340.html
Copyright © 2020-2023  润新知