Python: Умножение Списков (6 Различных Способов)

В этом учебнике вы узнаете, как использовать Python для умножения списков, включая умножение элементов списка на число и умножение списков друг на друга. К концу этого учебника вы научитесь умножать каждый элемент на число, используя циклы for, списковые включения и умножение массивов numpy. Затем вы узнаете, как умножать списки покомпонентно, используя циклы for, списковые включения, функцию Python zip() и функцию np.multiply() из библиотеки numpy.

Python списки - это мощная структура данных, которая используется во многих различных приложениях. Знание того, как их умножать, будет неоценимым инструментом на вашем пути в data science. Например, у вас может быть список, содержащий различные значения радиуса круга, и вы хотите вычислить площадь кругов. Также, у вас может быть список доходов, и вы хотите вычислить размер бонуса.

Быстрый ответ: используйте Numpy

Оглавление

Умножьте два списка Python на число с помощью Numpy

Начнем с изучения того, как умножить два списка Python на число с помощью numpy. Преимущество этого подхода в том, что он ясно показывает читателю, чего вы хотите достичь. Numpy использует массивы, которые являются структурами, похожими на списки, и позволяют нам манипулировать данными в них. Numpy предоставляет множество различных методов и функций, но в этом случае мы можем просто умножить массив на скаляр.

В приведенном ниже коде вы узнаете, как умножить список Python на число с использованием numpy:

# Умножение списка в Python на число с использованием библиотеки Numpy
import numpy as np

numbers = [1, 2, 3, 4, 5]

# Преобразование списка в массив Numpy, умножение на число и обратное преобразование в список
array = np.array(numbers) * 2
multiplied = list(array)

print(multiplied)

# Вывод: [2, 4, 6, 8, 10]

Давайте разберем, что мы здесь сделали:

  1. Мы преобразовали список в массив numpy.

  2. Затем мы умножили массив на число 2

  3. Наконец, мы преобразовали массив обратно в список

Преимущество этого подхода заключается в том, что, хотя требуется импортировать numpy, сразу становится ясно, чего вы хотите достичь с помощью своего кода. Это позволяет упростить процесс дальнейшего понимания нашего кода.

В следующем разделе вы узнаете, как с помощью цикла for в Python умножить список на число.

Умножение двух списков Python на число с помощью цикла for

В этом разделе вы узнаете, как использовать цикл for в Python для умножения списка на число. Циклы for в Python позволяют нам перебирать итерируемые объекты, такие как списки. Мы можем использовать циклы for, чтобы пройтись по каждому элементу списка и умножить его на заданное число.

Давайте посмотрим, как мы можем умножить список на число с помощью цикла for в Python:

# Умножение списка в Python на число с использованием цикла for
numbers = [1, 2, 3, 4, 5]
multiplied = []

for number in numbers:
    multiplied.append(number * 2)

print(multiplied)

# Вывод: [2, 4, 6, 8, 10]

Давайте разберем, что мы сделали здесь: мы создали два списка - один содержит наши числа, а другой пустой список для хранения умноженных значений. Затем мы перебираем каждый элемент в списке с числами. Мы добавляем умноженное число в наш список с умноженными значениями.

Циклы for в Python интуитивно понятны для перебора списков, но требуют сначала создать список и использовать больше строк кода, чем необходимо. Чтобы сократить наш код и сделать его более читабельным, в следующем разделе вы узнаете о генераторах списков в Python.

Умножьте два списка Python на число, используя понимание списка

В этом разделе вы узнаете, как использовать списковое включение Python для умножения элементов списка Python на число. Списковые включения Python — это простой способ представить циклы for в более простом и удобочитаемом формате.

Посмотрим, как можно использовать списковое включение Python для этого:

# Умножение списка в Python на число с использованием генератора списка
numbers = [1, 2, 3, 4, 5]
multiplied = [number * 2 for number in numbers]

print(multiplied)

# Вывод: [2, 4, 6, 8, 10]

Этот пример более читаем, чем использование цикла for. Мы можем четко указать, что умножаем каждый номер в нашем списке на значение. Это избавляет нас от необходимости сначала создавать пустой список, делая процесс более понятным.

В следующих разделах вы узнаете, как умножать списки Python поэлементно.

Умножение двух списков Python поэлементно с помощью Numpy

В следующих разделах вы узнаете, как перемножать списки поэлементно. Это означает, что первый элемент одного списка умножается на первый элемент второго списка и так далее.

Один из самых простых и интуитивных способов сделать это снова использовать numpy. Numpy имеет функцию multiply(), которая позволяет умножать два массива. Чтобы это сделать, кажется, что сначала нужно преобразовать список в массив numpy. Однако numpy обрабатывает это неявно. Метод возвращает массив numpy. Из-за этого нам нужно преобразовать массив обратно в список.

Давайте посмотрим, как мы можем использовать NumPy для умножения двух списков Python:

# Умножение двух списков в Python с использованием библиотеки Numpy
import numpy as np

numbers1 = [1, 2, 3, 4, 5]
numbers2 = [5, 4, 3, 2, 1]

# Использование функции multiply из Numpy для поэлементного умножения списков
multiplied = list(np.multiply(numbers1, numbers2))
print(multiplied)

# Вывод: [5, 8, 9, 8, 5]

Давайте разберем, что мы здесь сделали:

  • Мы создали два списка и передали их в функцию np.multiply()

  • Затем мы преобразовали возвращенный массив обратно в список

Если вы предпочитаете не использовать numpy, следующие два раздела покажут, как умножать два Python-списка без необходимости импортировать дополнительную библиотеку.

Умножение двух списков Python поэлементно с использованием цикла for и Zip

В этом разделе вы научитесь использовать цикл for и функцию zip в Python для поэлементного умножения двух списков.

Python на самом деле имеет встроенную функцию, которая позволяет нам итерировать по нескольким спискам напрямую — функция zip(). Я подробно объясняю эту функцию здесь — рекомендую ознакомиться с учебником, чтобы полностью понять, как она работает.

Давайте посмотрим, как мы можем использовать функцию zip для поэлементного умножения двух списков в Python:

# Умножение двух списков в Python с использованием цикла for и функции zip()
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [5, 4, 3, 2, 1]

multiplied = []
for value1, value2 in zip(numbers1, numbers2):
    multiplied.append(value1 * value2)

print(multiplied)

# Вывод: [5, 8, 9, 8, 5]

В приведенном выше примере мы распаковываем кортежи, которые возвращает объект zip, и умножаем их друг на друга. Произведение этих значений добавляется в наш список.

В следующем разделе вы узнаете, как использовать списковое включение для поэлементного умножения списка в Python.

Умножение двух списков Python поэлементно с использованием понимания списка и Zip

В этом заключительном разделе вы узнаете, как использовать списковое включение Python для поэлементного умножения списка на другой список. Списковое включение в Python — это сжатый, легко читаемый способ замены циклов for, которые генерируют списки. Хотя это чрезвычайно упрощенное объяснение, оно дает нам представление о том, как мы будем использовать списковое включение для умножения списков.

Давайте посмотрим, как мы можем этого добиться:

# Умножение двух списков в Python с использованием генератора списка и функции zip()
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [5, 4, 3, 2, 1]

multiplied = [item1 * item2 for item1, item2 in zip(numbers1, numbers2)]

print(multiplied)

# Вывод: [5, 8, 9, 8, 5]

Мы видим здесь, что мы умножаем элементы с одинаковым индексом двух списков и сохраняем результат в новый список.

Заключение

В этом учебном пособии вы узнали два разных метода умножения списков в Python: умножение списков на число и поэлементное умножение списков. Вы узнали, как упростить этот процесс с помощью numpy, а также как использовать списковые включения и циклы Python для умножения списков.

Чтобы узнать больше о методе np.multiply() в Python, ознакомьтесь с официальной документацией здесь.

Last updated