创建一个略微修改的Python元组副本?

use*_*783 2 python tuples

我有一个Python元组t,有5个条目.t[2]是一个int.如何创建具有相同内容的另一个元组,但是t[2]增加了?

有没有比以下更好的方式:

t2 = (t[0], t[1], t[2] + 1, t[3], t[4]) ?
Run Code Online (Sandbox Code Playgroud)

jon*_*rpe 5

我倾向于使用namedtuple替代,并使用_replace方法:

>>> from collections import namedtuple
>>> Test = namedtuple('Test', 'foo bar baz')
>>> t1 = Test(1, 2, 3)
>>> t1
Test(foo=1, bar=2, baz=3)
>>> t2 = t1._replace(bar=t1.bar+1)
>>> t2
Test(foo=1, bar=3, baz=3)
Run Code Online (Sandbox Code Playgroud)

这也为元组中的各个元素赋予了语义含义,即您指的是bar而不仅仅是第1th个元素.