我想实现一个tuple
个int
的函数,并将最后一个元素增加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)
这可以用更紧凑的方式完成(并且可能没有转换到列表)吗?
答案 0 :(得分:2)
无法就地修改元组。如果使用tuple
类型而不是可变序列非常重要,那么以下代码将执行您想要的操作而不进行转换:
def inc(t):
return t[:-1] + (t[-1] + 1,)
请注意,必须创建三个新元组才能完成此任务。我不知道所涉及的开销会比转换为&的开销小得多。来自list
。