как функция суммы в Python работает с этим случаем (сложение кортежей из списка) - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь использовать функцию sum () в моем коде, но есть ошибка, которую я не понимаю, почему.Как я могу решить эту проблему

мой код должен добавить кортежи из списка, чтобы выходные данные были такими:

вход:

a = [(1, 2, 3), (4, 5, 6)]

выход:

(5, 7, 9)

это мой код

a = [(1, 3, 5), (2, 3, 5), (3, 3, 5), (4, 3, 5)]
a = iter(a)
b = next(a)
for x in a:
    b = sum(b, x)
print(b)

Ошибка:

TypeError: can only concatenate tuple (not "int") to tuple

1 Ответ

0 голосов
/ 06 декабря 2018

Это можно сделать с помощью встроенной функции zip:

[sum(x) for x in zip(*a)]

Полный сеанс консоли:

>>> a = [(1, 2, 3), (4, 5, 6)]
>>> list(zip(*a))  # "Make an iterator that aggregates elements from each of the iterables"
[(1, 4), (2, 5), (3, 6)]
>>> [sum(x) for x in zip(*a)]
[5, 7, 9]
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...