美文网首页Python
Python3之zip()函数学习笔记

Python3之zip()函数学习笔记

作者: 西北小生_ | 来源:发表于2019-07-21 21:24 被阅读0次

    zip()函数的功能是将可迭代对象(列表、元组等)中的参数转换成一个个元组对,生成一个元组组成的zip对象。如果想要输出查看生成的元组对,必须利用list()函数进行显示转换成列表,才能显示查看。例子如下:

    1.输入参数是一个一维数组的情况:
    In [1]: a = [1, 2, 3, 4, 5]                                                     
    
    In [2]: zip_a = zip(a)                                                          
    
    In [3]: zip_a                                                                   
    Out[3]: <zip at 0x7f5b6c4d7688>
    
    In [4]: list(zip_a)                                                             
    Out[4]: [(1,), (2,), (3,), (4,), (5,)]
    
    2.输入参数是两个等长度数组的情况:
    In [5]: a = [1, 2, 3, 4, 5]                                                     
    
    In [6]: b = ['a', 'b', 'c', 'd', 'e']                                           
    
    In [7]: c = zip(a, b)                                                           
    
    In [8]: c                                                                       
    Out[8]: <zip at 0x7f5b6c4efd48>
    
    In [9]: list(c)                                                                 
    Out[9]: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
    
    3.输入是两个不等长度数组的情况:

    这种情况下,函数将取二者中的最短长度进行组合,输出元组对的数量与输入参数中长度最短数组的元素数量相同。

    In [10]: a = [1, 2, 3, 4, 5]                                                    
    
    In [11]: b = ['a', 'b', 'c']                                                    
    
    In [12]: list(zip(a,b))                                                         
    Out[12]: [(1, 'a'), (2, 'b'), (3, 'c')]
    
    4.输入是二维的矩阵时,输出是一维情况下的正常推广:
    In [18]: import numpy as np                                                     
    
    In [19]: a = np.arange(9).reshape(3,3)                                          
    
    In [20]: a                                                                      
    Out[20]: 
    array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])
    
    In [21]: b = np.array([['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']])      
    
    In [22]: b                                                                      
    Out[22]: 
    array([['a', 'b', 'c'],
           ['d', 'e', 'f'],
           ['g', 'h', 'i']], dtype='<U1')
    
    In [23]: list(zip(a,b))                                                         
    Out[23]: 
    [(array([0, 1, 2]), array(['a', 'b', 'c'], dtype='<U1')),
     (array([3, 4, 5]), array(['d', 'e', 'f'], dtype='<U1')),
     (array([6, 7, 8]), array(['g', 'h', 'i'], dtype='<U1'))]
    

    同样当输入的两个二维矩阵维度不一致时,取各维度最小值进行组合:

    In [24]: a = np.arange(9).reshape(3,3)                                          
    
    In [25]: a                                                                      
    Out[25]: 
    array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])
    
    In [26]: b = np.array([['a', 'b', 'c'], ['d', 'e', 'f']])                       
    
    In [27]: b                                                                      
    Out[27]: 
    array([['a', 'b', 'c'],
           ['d', 'e', 'f']], dtype='<U1')
    
    In [28]: list(zip(a,b))                                                         
    Out[28]: 
    [(array([0, 1, 2]), array(['a', 'b', 'c'], dtype='<U1')),
     (array([3, 4, 5]), array(['d', 'e', 'f'], dtype='<U1'))]
    

    相关文章

      网友评论

        本文标题:Python3之zip()函数学习笔记

        本文链接:https://www.haomeiwen.com/subject/kywvlctx.html