Python序列:+和*的微妙之处

本文探讨Python序列中加号(+)和乘号(*)的使用,揭示它们在字符串拼接和列表复制中的行为。加号用于拼接,不改变原对象,而乘号复制并拼接序列。增量赋值`+=`和`*=`对可变序列(如列表)直接修改原对象,而对于不可变序列(如元组),则会创建新对象。一个有趣的发现是,即使在元组中对可变对象进行赋值会引发异常,但赋值操作本身仍然有效,提示我们避免在元组中存放可变对象。
摘要由CSDN通过智能技术生成

本文分享一下在Python序列上使用加号和乘号的特性,以及背后的一些有趣实现,供您参考。

序列的加和乘

在序列相加其实就是拼接,加号两侧的数据类型要相同。拼接过程不会修改原来对象,而是生成一个新对象来保存结果。这个操作比较常见,比如字符串的拼接和列表的拼接。

所谓序列的乘,其实是把序列乘以一个整数N,效果是把列表中元素复制N份,然后再拼接起来。比如:

l = [0, 1, 2]
print(l * 3)
print(3 * 'abcd')

>> [0, 1, 2, 0, 1, 2, 0, 1, 2]
>> abcdabcdabcd

有了这个乘的操作,我们可以用来方便地初始化多维的序列。比如:

board = []
for i in range(3):
    row = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值