python3的zip()、*zip()、zip(*)的用法 和 zip()在LeetCode中的妙用(未完)

zip()简介

zip(*iterables)函数可以把 若干个 可迭代的对象 作为参数,打包一个一个的元组,然后返回由这些元组组成的对象

  • 若干个:这些对象的长度有要求么?
    • 没有要求,只要有长度就行,比如a = [1,2,3], b = [1,2,3,4,5],那zip后的元素个数与最短的列表一致。
  • 可迭代的对象 :指的是什么呢?
    • 列表,元组,字典,字符串,这些都可以。字符串真的也可以。
  • 打包:如何打包?
    • 就是这些对象都有下标,就把所有对象的同一下标的元素,放进一个一个元组里。
  • zip() 中的*iterables就是 不限制数量的可变对象
  • 返回的是对象:指的是什么?
    • 所谓对象,就是没法打印的东西,一般是这种形式: <zip at 0x1f6e7ba1c00>
    • 但我们可以使用list() dict() set() str() 函数 转换成列表、字典、元组、字符串
    • 注1:凡是返回时时什么对象的东西,都得转化后才能常规显示。
    • 注2:只有当用dict()的时候,要求zip()里,只能有两个可迭代对象!!!!
    • 注3:当可迭代对象中有 字典 时,只会把字典的key打包,而不会把value打包。
a = [1,2,3]
b = [4,5,6]
c = (7,8,9,10)
d = {"curry": 24, "luka": 25, "james": 26}
e = 'harden'
------------------------------------------------------------------------
res1 = zip(a, b)
res
	<zip at 0x1f6e7bbef00>
------------------------------------------------------------------------
res2 = list(zip(a,b))               res2 = dict(zip(a,b))
res2
	[(1, 4), (2, 5), (3, 6)]   |    {1: 4, 2: 5, 3: 6}
------------------------------------------------------------------------
res3 = dict(zip(a,b,c))
ValueError: dictionary update sequence element #0 has length 3; 2 is required
​res4 = list(zip(a, b, c))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
res5 = list(zip(a,d))
[(1, 'curry'), (2, 'luka'), (3, 'james')]

*zip()简介

zip(*)简介

LeetCode中哪些情况在用Python3解题时可用zip

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值