Python: how to change (last) element of tuple?

Cri*_*scu 8 python

The question is a bit misleading, because a tuple is immutable. What I want is:

Having a tuple a = (1, 2, 3, 4) get a tuple b that is exactly like a except for the last argument which is, say, twice the last element of a.

=> b == (1, 2, 3, 8)

Ivo*_*Ivo 19

b = a[:-1] + (a[-1]*2,)
Run Code Online (Sandbox Code Playgroud)

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

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

  • 怎么样`(a [-1]*2,)`?以上抛出了一个TypeError.(对于单项元组,尾随逗号是必需的) (2认同)

Sig*_*gyF 6

我会做的事情如下:

b=list(a)
b[-1]*=2
b=tuple(b)
Run Code Online (Sandbox Code Playgroud)


Fab*_*olm 5

这是一种方法:

>>> a = (1, 2, 3, 4)
>>> b = a[:-1] + (a[-1]*2, )
>>> a
(1, 2, 3, 4)
>>> b
(1, 2, 3, 8)
Run Code Online (Sandbox Code Playgroud)

那么第二行会发生什么?a [: - 1]表示除最后一个元素之外的所有a.a [-1]是最后一个元素,我们将它乘以2.(a [-1]*2,)将结果转换为元组,并使用+运算符将切片的元组与其连接.结果放在b中.

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