Python:如何改变(最后)元组的元素?

时间:2010-08-06 14:03:26

标签: python

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

让元组a = (1, 2, 3, 4)得到一个与b完全相同的元组a,除了最后一个参数,即a的最后一个元素的两倍。< / p>

=&GT; b ==(1,2,3,8)

3 个答案:

答案 0 :(得分:19)

b = a[:-1] + (a[-1]*2,)

我在这里做的是连接两个元组,第一个包含除最后一个元素之外的所有元素,以及包含最终元素变异的新元组。结果是一个包含你想要的新元组。

请注意,要使+返回一个元组,两个操作数必须是一个元组。

答案 1 :(得分:6)

我会做类似的事情:

b=list(a)
b[-1]*=2
b=tuple(b)

答案 2 :(得分: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]是最后一个元素,我们将它乘以2。 (a [-1] * 2,)将结果转换为元组,并使用+运算符将切片的元组与其连接。结果放在b。

你可能适合你的具体情况。