Python: Умножение Списков (6 Различных Способов)
Last updated
Last updated
В этом учебнике вы узнаете, как использовать Python для умножения списков, включая умножение элементов списка на число и умножение списков друг на друга. К концу этого учебника вы научитесь умножать каждый элемент на число, используя циклы for, списковые включения и умножение массивов numpy
. Затем вы узнаете, как умножать списки покомпонентно, используя циклы for, списковые включения, функцию Python zip() и функцию np.multiply()
из библиотеки numpy.
Python списки - это мощная структура данных, которая используется во многих различных приложениях. Знание того, как их умножать, будет неоценимым инструментом на вашем пути в data science. Например, у вас может быть список, содержащий различные значения радиуса круга, и вы хотите вычислить площадь кругов. Также, у вас может быть список доходов, и вы хотите вычислить размер бонуса.
Быстрый ответ: используйте Numpy
Оглавление
Начнем с изучения того, как умножить два списка Python на число с помощью numpy. Преимущество этого подхода в том, что он ясно показывает читателю, чего вы хотите достичь. Numpy использует массивы, которые являются структурами, похожими на списки, и позволяют нам манипулировать данными в них. Numpy предоставляет множество различных методов и функций, но в этом случае мы можем просто умножить массив на скаляр.
В приведенном ниже коде вы узнаете, как умножить список Python на число с использованием numpy:
Давайте разберем, что мы здесь сделали:
Мы преобразовали список в массив numpy.
Затем мы умножили массив на число 2
Наконец, мы преобразовали массив обратно в список
Преимущество этого подхода заключается в том, что, хотя требуется импортировать numpy, сразу становится ясно, чего вы хотите достичь с помощью своего кода. Это позволяет упростить процесс дальнейшего понимания нашего кода.
В следующем разделе вы узнаете, как с помощью цикла for в Python умножить список на число.
В этом разделе вы узнаете, как использовать цикл for в Python для умножения списка на число. Циклы for в Python позволяют нам перебирать итерируемые объекты, такие как списки. Мы можем использовать циклы for, чтобы пройтись по каждому элементу списка и умножить его на заданное число.
Давайте посмотрим, как мы можем умножить список на число с помощью цикла for в Python:
Давайте разберем, что мы сделали здесь: мы создали два списка - один содержит наши числа, а другой пустой список для хранения умноженных значений. Затем мы перебираем каждый элемент в списке с числами. Мы добавляем умноженное число в наш список с умноженными значениями.
Циклы for в Python интуитивно понятны для перебора списков, но требуют сначала создать список и использовать больше строк кода, чем необходимо. Чтобы сократить наш код и сделать его более читабельным, в следующем разделе вы узнаете о генераторах списков в Python.
В этом разделе вы узнаете, как использовать списковое включение Python для умножения элементов списка Python на число. Списковые включения Python — это простой способ представить циклы for в более простом и удобочитаемом формате.
Посмотрим, как можно использовать списковое включение Python для этого:
Этот пример более читаем, чем использование цикла for. Мы можем четко указать, что умножаем каждый номер в нашем списке на значение. Это избавляет нас от необходимости сначала создавать пустой список, делая процесс более понятным.
В следующих разделах вы узнаете, как умножать списки Python поэлементно.
В следующих разделах вы узнаете, как перемножать списки поэлементно. Это означает, что первый элемент одного списка умножается на первый элемент второго списка и так далее.
Один из самых простых и интуитивных способов сделать это снова использовать numpy. Numpy имеет функцию multiply()
, которая позволяет умножать два массива. Чтобы это сделать, кажется, что сначала нужно преобразовать список в массив numpy. Однако numpy обрабатывает это неявно. Метод возвращает массив numpy. Из-за этого нам нужно преобразовать массив обратно в список.
Давайте посмотрим, как мы можем использовать NumPy для умножения двух списков Python:
Давайте разберем, что мы здесь сделали:
Мы создали два списка и передали их в функцию np.multiply()
Затем мы преобразовали возвращенный массив обратно в список
Если вы предпочитаете не использовать numpy, следующие два раздела покажут, как умножать два Python-списка без необходимости импортировать дополнительную библиотеку.
В этом разделе вы научитесь использовать цикл for и функцию zip в Python для поэлементного умножения двух списков.
Python на самом деле имеет встроенную функцию, которая позволяет нам итерировать по нескольким спискам напрямую — функция zip()
. Я подробно объясняю эту функцию здесь — рекомендую ознакомиться с учебником, чтобы полностью понять, как она работает.
Давайте посмотрим, как мы можем использовать функцию zip для поэлементного умножения двух списков в Python:
В приведенном выше примере мы распаковываем кортежи, которые возвращает объект zip, и умножаем их друг на друга. Произведение этих значений добавляется в наш список.
В следующем разделе вы узнаете, как использовать списковое включение для поэлементного умножения списка в Python.
В этом заключительном разделе вы узнаете, как использовать списковое включение Python для поэлементного умножения списка на другой список. Списковое включение в Python — это сжатый, легко читаемый способ замены циклов for, которые генерируют списки. Хотя это чрезвычайно упрощенное объяснение, оно дает нам представление о том, как мы будем использовать списковое включение для умножения списков.
Давайте посмотрим, как мы можем этого добиться:
Мы видим здесь, что мы умножаем элементы с одинаковым индексом двух списков и сохраняем результат в новый список.
В этом учебном пособии вы узнали два разных метода умножения списков в Python: умножение списков на число и поэлементное умножение списков. Вы узнали, как упростить этот процесс с помощью numpy, а также как использовать списковые включения и циклы Python для умножения списков.
Чтобы узнать больше о методе np.multiply()
в Python, ознакомьтесь с официальной документацией здесь.