我有这样的伪代码:

if( b < a)
   return (1,0)+foo(a-b,b)

我想用python写。但是python可以添加元组吗?最好的编码方法是什么?

最佳答案

您想进行元素添加,还是追加元组?默认情况下,python会

(1,2)+(3,4) = (1,2,3,4)

您可以将自己定义为:
def myadd(x,y):
     z = []
     for i in range(len(x)):
         z.append(x[i]+y[i])
     return tuple(z)

另外,正如@delnan的评论所表明的那样,这篇文章最好写成
def myadd(xs,ys):
     return tuple(x + y for x, y in izip(xs, ys))

或者更实用:
myadd = lambda xs,ys: tuple(x + y for x, y in izip(xs, ys))

那就去吧
if( b < a) return myadd((1,0),foo(a-b,b))

07-26 01:05