python-操作符*用于解包的应用场景分析——重复模块

一、任务分析

假设有一个系统,系统中只能有一级模块,也即只能是一维。

若用列表表示,就是sys = ['a', 'b' ,'c' ,'d' ,'e'];对于sys = [['a', 'b'], ['c' ,'d']]是不允许存在的。

现在客户想在原来的位置重现n次模块b,并且就在后面的位置重现,n是一个可变量,客户指定一个n值,系统就可以相应地发生改变。

二、代码实现

sys = ['a', 'b' ,'c' ,'d' ,'e']

n = 5  # 客户指定的n值,假设为5

sys = ['a', *['b' for i in range(n)], 'c' ,'d' ,'e']

print(sys)  # ['a', 'b', 'b', 'b', 'b', 'b', 'c', 'd', 'e']

三、原理讲解

*可以对['b' for i in range(n)]这个列表进行解包,也就是说*['b' for i in range(n)]等价于'b' for i in range(n)。

但是它们又不完全等价,只是输出效果等价;因为显然列表推导式两边必须要有圆括号或中括号封闭,不然就会发生语法错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值