这个问题有点误导,因为元组是不可变的。我想要的是:
给定一个元组 a = (1, 2, 3, 4)
,获得一个元组 b
,它与 a
完全相同,除了最后一个参数,它是 a
的最后一个元素的两倍。
=> b == (1, 2, 3, 8)
这个问题有点误导,因为元组是不可变的。我想要的是:
给定一个元组 a = (1, 2, 3, 4)
,获得一个元组 b
,它与 a
完全相同,除了最后一个参数,它是 a
的最后一个元素的两倍。
=> b == (1, 2, 3, 8)
b = a[:-1] + (a[-1]*2,)
我在这里做的是将两个元组连接起来,第一个元组包含除最后一个元素以外的所有内容,第二个元组包含最后一个元素的变异。结果是一个新的元组,其中包含您想要的内容。(a[-1] * 2,)
怎么样?上面的语句会抛出 TypeError。(一个元素的元组需要加逗号) - Skilldrick我会这样做:
b=list(a)
b[-1]*=2
b=tuple(b)
>>> 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]是最后一个元素,我们将它乘以二。(a[-1]*2, )将结果转换为元组,并使用+运算符将切片后的元组与之连接。结果被放入b。
您可以根据您的具体情况进行调整。
major.minor.branch.build -> (major, minor, branch, build)
并且我需要从给定版本获取“上一个构建”的版本。 - Cristian Diaconescudistutils.version.StrictVersion
类来处理版本号。 - SiggyF