例如,我有一个元组
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))