Python中zip 和 zip(*) 的运用

起因

今天在做力扣883时,遇到一个问题,想要将列表的每一列对应元素抽取出来进行比较,例如:

a = [1, 2]
b = [3, 4]

想要得到:

temp1 = [1, 3]
temp2 = [2, 4]

虽然遍历也可以实现,但是想寻求一种更简单的方式。

使用zip

通过zip的使用可以实现以上功能。
例如:

a = [1, 2]
b = [3, 4]
temp = list(zip(a, b))

得到:

temp = [(1, 3), (2, 4)]

使用zip(*)

zip可以视为zip()的逆运算,两者对应着解压和压缩的关系。
zip
可以得到原来的a, b,例如:

a = [1, 2]
b = [3, 4]
temp = list(zip(a, b))
a, b = zip(*temp)

可以得到原来的a, b , (在python3中可能需要通过list()函数对a, b 进行转换)

zip(*)的高级用法

因为zip可以将一个列表解压,因此可以直接对列表进行处理,将多维列表的每一列抽取出来形成新列表,例如:

a = [[1,2],[3,4]]
temp = list(zip(*a))

可以得到:

temp = [(1, 3), (2, 4)]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值