Опубликован: 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]
Методы преобразования списка в строку и обратно
Подсчет количества вложенных списков в списке
Преобразование строки числовых значений в список чисел
Комментариев нет.