Effective Python:第13条 通过带星号的unpacking操作来捕获多个元素,不要用切片

基本的unpacking操作(参见第6条)有一项限制,就是必须提前确定需要拆解的序列的长度。

unpacking用法:通过带*的表达式;

特点:

1,带星号的表达式可以放在任何地方;

2,至少有一个普通变量进行搭配;

3,同一级中只能有一个带星号的表达式;

4,带星号的表达式生成结果是列表;(数据大时,需要考虑内存)

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# b, c = a
# print(b, c)  # ValueError:too many values to unpack (expected 2)
b, c, *d = a
print(b, c, d)  # 0 1 [2, 3, 4, 5, 6, 7, 8, 9]
b, *c, d = a
print(b, c, d)  # 0 [1, 2, 3, 4, 5, 6, 7, 8] 9
*b, c, d = a
print(b, c, d)  # [0, 1, 2, 3, 4, 5, 6, 7] 8 9
# *b, *c, d = a
# print(b, c, d)  # SyntaxError:multiple starred expressions in assignment

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值