Python小模块之Zip用法

刷leetcode题你总能看到各式各样的小方法,各式各样的python魔法方法。今天就来聊聊这个zip函数,这个是python的一个内置函数。

zip()接受的参数是一个可迭代的列表,返回的是一个个元组。zip顾名思义就意味着压缩,那么解压就是zip(*)。使用下面两个小栗子进行说明。

1、zip()


In [1]: a=[1,2,3]

In [2]: b=[4,5,6]

In [3]: for item in zip(a,b):
   ...:     print(item)
   ...:
(1, 4)
(2, 5)
(3, 6)



In [7]: b=[4,5,6,7]

In [8]: a = [1,2,3]

In [9]: for item in zip(a,b):
   ...:     print(item)
   ...:
   ...:
   ...:
(1, 4)
(2, 5)
(3, 6)

将列表打包返回一个元组为单位的列表。 

2、zip(*)


In [4]: s = ["flower","flow","flight"]

In [5]: for item in zip(s):
   ...:     print(item)
   ...:
('flower',)
('flow',)
('flight',)

In [6]: for item in zip(*s):
   ...:     print(item)
   ...:
   ...:
('f', 'f', 'f')
('l', 'l', 'l')
('o', 'o', 'i')
('w', 'w', 'g')

zip(*)会把列表变成一个二维矩阵。

3、结论

通过实验会发现一个问题,zip()函数只取最短长度的。不管是压缩还是解压不顾及最长的长度,只看最短长度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值