持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情
0 环境
- 编辑器:idea或vscode
- 系统版本:windows10
- python版本:3.9.6
1 回顾和补充
剩下的四个变体:多个星号变量或者左边只有一个星号变量都是会报错的,而且只有变量而没有星号变量也会报错,左边的变量长于右边元素的长度也会报错。 星号相关:无论右边是什么类型,左边带星型的都是列表。当列表的元素长度,不够供应左边的变量,优先非星号变量,星号变量为空列表。从个人辩证的角度来看,左边只有一个星号变量或者有多个星号变量,既然是为了解构元素而生,就不太会抢其他api的生意,左边只有一个星号变量,我们本意想相当于全部赋值,但我们可以copy,深拷贝处理。多个星号,剩余的元素,它们几个怎么分合适呢,就算可以,你想拿某个部分的值,是不是还要挨个看看,也没节省人工的成本,还不如上切片呢,既然不太可控,还不如让它报错得了。我的星号理解:前提是吃别人剩下的元素,一旦其他人都没动筷子,那么他就哭,直接报错,可以没有剩余的元素吃,饿着肚子,但是规矩还是得有。当出现多个星号时,一山不容二虎,分配不均,直接报错就对了。在直观一点,其他人都吃好了,还剩下7个元素,两个星号怎么分,三个怎么分,四个怎么分,就算可以,且出了分配规则,是不是还要记规则,那你还会考虑用它嘛。
2 python常用的下划线
_就像黑洞,就像人死后把他的骨灰放进骨灰盒一样,放进去了,就再也不可能活着出来了。对于我们认为不重要,没啥用的变量,可以用它代替,可以节省资源。比如head,*_,tail = lists,下划线接收无用变量。重点:单个下划线标识,接收无用变量,不要把它用在有用的变量上。那么在解构中,可以多个无用变量用下划线接收嘛,可以的。
3 解构可以支持多层次
这里有两个星号,怎么不报错呢,补充一点:只要每个层级只有一个*,就没问题。