zoukankan      html  css  js  c++  java
  • zip在python中的使用方法

    zip最开始以为是压缩解压之类的……呵呵

    【2】Python的zip函数——frydsh  传送门

    [2]

     zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。

    ***********

     1 x = [1, 2, 3]
     2 y = [4, 5, 6]
     3 z = [7, 8, 9]
     4 xyz = zip(x, y, z)
     5 print xyz
     6 """
     7 运行的结果是:
     8 [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
     9 可以看做是将三个列向量拼凑在一起合并成矩阵
    10  1 4 7
    11  2 5 8
    12  3 6 9
    13 """

    ***********

    列向量去长度最短,即当xyz长度不同时,截取最短长度,其余舍弃。

    **********

     1  #只有一个参数时
     2  x = [1, 2, 3]
     3  x = zip(x)
     4  print x
     5  """
     6  运行的结果是:
     7  [(1,), (2,), (3,)]
     8  """
     9  
    10  #在没有参数时
    11  x = zip()
    12  print x
    13  """
    14  运行的结果是:
    15  []
    16  """

    ***************

    u = zip(*xyz)可以理解为是对xyz矩阵的转置。

    在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

    那么,zip(*xyz) 结果是[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

    *****************

    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)

  • 相关阅读:
    51Nod 1006 最长公共子序列Lcs
    输入和输出
    51Nod 1092 回文字符串
    51Nod 1050 循环数组最大子段和
    项目初始
    一元多项式求导 (25)
    说反话 (20)
    数组元素循环右移问题 (20)
    素数对猜想 (20)
    换个格式输出整数 (15)
  • 原文地址:https://www.cnblogs.com/6luv-ml/p/7489959.html
Copyright © 2011-2022 走看看