这个问题有点误导,因为元组是不可变的。我想要的是:
让元组a = (1, 2, 3, 4)
得到一个与b
完全相同的元组a
,除了最后一个参数,即a
的最后一个元素的两倍。< / p>
=&GT; b ==(1,2,3,8)
答案 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。
你可能适合你的具体情况。