Поэлементное суммирование списков (кортежей)

Опубликован: 05.12.2023 80

При анализе числовых последовательностей (таких как списки или кортежи) довольно часто возникает задача их поэлементной обработки - например, сложения элементов с одинаковыми индексами (или выполнения других вычислений поэлементно).

Для сложения поэлементно двух и более списков (или кортежей) в Python можно использовать элегантный "pythonic" трюк с генератором списков List comprehension и встроенными функциями zip() и sum().

list_a = [1, 2, 3, 4, 5]
list_b = [2, 4, 6, 8, 10]
tuple_c = (3, 5, 7, 9, 11)

elem_sum = [sum(elem) for elem in zip(list_a, list_b, tuple_c)]
print(elem_sum)
[6, 11, 16, 21, 26]

В этом примере функция zip() объединяет исходные два списка list_a, list_b и кортеж tuple_c в список кортежей из трех элементов с одинаковыми индексами, а затем используется генератор списков и функция sum() для сложения полученных элементов кортежей и создания результирующего списка elem_sum.

Аналогичным образом можно поэлементно производить и другие вычисления с элементами итерируемых последовательностей (например, перемножать элементы списков и кортежей):

list_a = [1, 2, 3, 4, 5]
list_b = [2, 4, 6, 8, 10]
tuple_c = (3, 5, 7, 9, 11)

elem_mul = [a * b * c for a, b, c in zip(list_a, list_b, tuple_c)]
print(elem_mul)
[6, 40, 126, 288, 550]

Похожие посты

Методы преобразования списка в строку и обратно

Удаление дубликатов из списка

Подсчет количества вложенных списков в списке

Преобразование строки числовых значений в список чисел

Комментариев нет.