Python:如何更改元组的最后一个元素?
这个问题有点误导,因为元组是不可变的。我的意思是:
假设有一个元组 a = (1, 2, 3, 4)
,我想得到一个元组 b
,它和 a
一模一样,只是最后一个元素变成了 a
最后一个元素的两倍,比如说。
=> b == (1, 2, 3, 8)
3 个回答
5
这里有一种方法可以做到:
>>> a = (1, 2, 3, 4)
>>> b = a[:-1] + (a[-1]*2, )
>>> a
(1, 2, 3, 4)
>>> b
(1, 2, 3, 8)
那么第二行发生了什么呢?a[:-1] 的意思是取出 a 中除了最后一个元素以外的所有元素。a[-1] 是最后一个元素,我们把它乘以二。 (a[-1]*2, ) 这个部分把结果变成一个元组,然后用 + 运算符把切片后的元组和它连接在一起。最后的结果存放在 b 里。
你可以根据自己的具体情况来调整这个方法。
8
我会这样做:
b=list(a)
b[-1]*=2
b=tuple(b)
23
b = a[:-1] + (a[-1]*2,)
我这里做的是把两个元组连接在一起,第一个元组包含除了最后一个元素以外的所有元素,第二个元组是最后一个元素的变种。最终的结果是一个新的元组,里面包含你想要的内容。
需要注意的是,使用+
来返回一个元组时,两个操作数都必须是元组。