python中嵌套元组的元素操作
元组的元素添加非常简单:python中嵌套元组的元素操作,python,tuples,Python,Tuples,元组的元素添加非常简单: a = (1,2,3,4) b = (2,4,6,8) tuple(x+y for x,y in zip(a,b)) (3,6,9,12) 但嵌套元组的元素级加法更为复杂: a = ((1,2),(3,4),(5,6)) b = ((2,4),(6,8),(10,12)) tuple(x+y for tup_a, tup_b in zip(a,b) for x,y in zip(tup_a,tup_b)) (3,6,9,12,15,18) 元组是扁平的。如何在保
a = (1,2,3,4)
b = (2,4,6,8)
tuple(x+y for x,y in zip(a,b))
(3,6,9,12)
但嵌套元组的元素级加法更为复杂:
a = ((1,2),(3,4),(5,6))
b = ((2,4),(6,8),(10,12))
tuple(x+y for tup_a, tup_b in zip(a,b) for x,y in zip(tup_a,tup_b))
(3,6,9,12,15,18)
元组是扁平的。如何在保留元组结构的同时对未使用的元组执行元素级加法
这是所需的输出:
((3,6),(9,12),(15,18))
嵌套生成器表达式:
tuple(tuple(x + y for x, y in zip(tup_a, tup_b)) for tup_a, tup_b in zip(a, b))
演示:
这可能就是我要做的,这应该比两个层次更深入
>>> a = ((1,2),(3,4),(5,6))
>>> b = ((2,4),(6,8),(10,12))
>>> tuple(tuple(x + y for x, y in zip(tup_a, tup_b)) for tup_a, tup_b in zip(a, b))
((3, 6), (9, 12), (15, 18))
def xsum(a,b):
if isinstance(a,(list,tuple)) and isinstance(b,(list,tuple)):
return [xsum(x,y) for x,y in zip(a,b)]
return a+b
a = ((1,2),(3,4),(5,6))
b = ((2,4),(6,8),(10,12))
print [xsum(x,y) for x,y in zip(a,b)]