如何获取元组Python中每个元素的总和



例如,我有一个元组

t = ((1, 1), (1, 1), (1, 1)) 

我如何才能用一个循环得到所有这些元素的总和

我想得到6

您可以使用sum进行map,并获得结果的sum

sum(map(sum, t))
# 6

或者,如果您喜欢使用for循环:

res = 0
for i in t:
res += sum(i)
print(res)
# 6 

您可以使用简单的迭代(适用于python3.8,我认为它也适用于旧版本(。

t = ((1, 1), (1, 1), (1, 1)) 
sum_tuples = 0
for a,b in t:
sum_tuples += a # First element
sum_tuples += b # Second Element
print(sum_tuples) # prints 6

您可以使用itertools.chain

>>> import itertools
>>> t = ((1, 1), (1, 1), (1, 1)) 
>>> sum(itertools.chain.from_iterable(t))
6

您可以循环元组来求和所有元组。这个代码很长,但它可以在tuple中求和tuple

t = ((1, 1), (1, 1), (1, 1))
# Tuple in tuple:
t = ((1, 1, (1, 1, (1, 1))))
def getsum(var, current = 0):
result = current
if type(var) == tuple:
for i in range(len(var)):
x = var[i]
result = getsum(x, result)
else:
result += var
return result
print(getsum(t))

最新更新