Python:如何更改元组的最后一个元素?

10 投票
3 回答
14221 浏览
提问于 2025-04-16 02:25

这个问题有点误导,因为元组是不可变的。我的意思是:

假设有一个元组 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,)

我这里做的是把两个元组连接在一起,第一个元组包含除了最后一个元素以外的所有元素,第二个元组是最后一个元素的变种。最终的结果是一个新的元组,里面包含你想要的内容。

需要注意的是,使用+来返回一个元组时,两个操作数都必须是元组。

撰写回答