我們知道元組在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

慕妹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的答案中找到一個證明。
添加回答
舉報
0/150
提交
取消