增加元组中的最后一个元素

时间:2016-11-20 21:44:13

标签: python tuples

我想实现一个tupleint的函数,并将最后一个元素增加1:

inc((0,0,0,1))==(0,0,0,2)
inc((1,2,3))==(1,2,4)

这就是我提出的:

def inc(t):
   l=list(t)
   l[-1]+=1
   return tuple(l)

这可以用更紧凑的方式完成(并且可能没有转换到列表)吗?

1 个答案:

答案 0 :(得分:2)

无法就地修改元组。如果使用tuple类型而不是可变序列非常重要,那么以下代码将执行您想要的操作而不进行转换:

def inc(t):
    return t[:-1] + (t[-1] + 1,)

请注意,必须创建三个新元组才能完成此任务。我不知道所涉及的开销会比转换为&的开销小得多。来自list