Как я могу получить сумму каждого элемента в кортеже Python - PullRequest
1 голос
/ 20 марта 2020

Например, у меня есть кортеж

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

Как я могу получить сумму всех этих элементов только с одним l oop

Я хотел бы получить 6

Ответы [ 4 ]

2 голосов
/ 20 марта 2020

Вы можете map с помощью sum и получить sum результата:

sum(map(sum, t))
# 6

Или, если вы предпочитаете его с l для 101 * *:

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

print(res)
# 6 
0 голосов
/ 20 марта 2020

Вы можете l oop кортеж, чтобы суммировать все. Этот код длинный, но может иметь сумму 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))
0 голосов
/ 20 марта 2020

Вы можете использовать itertools.chain

>>> import itertools
>>> t = ((1, 1), (1, 1), (1, 1)) 
>>> sum(itertools.chain.from_iterable(t))
6
0 голосов
/ 20 марта 2020

Вы можете использовать простую итерацию (работает в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...