为了账号安全,请及时绑定邮箱和手机立即绑定

Python3中元组的不变性

Python3中元组的不变性

郎朗坤 2021-03-30 17:14:30
我们知道元组在Python中是不可变的。那为什么下面的代码可以工作呢?3 * ('a','b','c')给出如下输出:('a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c')
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

“不可修改”表示“无法修改”,而不是“不能用于构造其他数据”。不管怎么说,后者在容器中没有多大意义!除了包含供以后使用的数据外,元组还有什么用?


您的示例代码3 * ('a', 'b', 'c') = ('a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c')仅显示将元组乘以标量会创建带有重复元素的新元组。但是,以下操作是不可能的:


tup = ('a', 'b', 'c')

tup[0] = 'z'  # fails, because tuples are not mutable


查看完整回答
反对 回复 2021-04-09
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

`('a','b','c')` is a tuple.

并且3 * ('a','b','c')=('a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c')是由3倍的组成的另一个元组('a','b','c')。如果你觉得x =('a','b','c')那么3*('a','b','c')= X + X + x`(外观,x和x + X + x是不一样的!),两者是分开的元组。在这个相似的规则中,1和1 + 1 + 1是不一样的!

您会在Benjamin Toueg的答案中找到一个证明。


查看完整回答
反对 回复 2021-04-09
  • 3 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号