Python

Python3之zip()函数学习笔记

2019-07-21  本文已影响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'))]
上一篇下一篇

猜你喜欢

热点阅读