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, 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中.
你可能适合你的具体情况.