Jak mnożyć listy w Pythonie: 7 szybkich sposobów

Mnożenie list w Pythonie jest powszechną operacją podczas wykonywania obliczeń matematycznych lub rozwiązywania problemów związanych z manipulacją danymi. Istnieje wiele sposobów wykonania tego zadania, w zależności od wymagań i dostępnych bibliotek.

Aby zwielokrotnić listy w Pythonie, możesz użyć pętli for, funkcji rozumienia list, funkcji zip i map lub wbudowanego modułu functools. Możesz także użyć funkcji z zewnętrznej biblioteki Pythona, takiej jak NumPy.

Ten artykuł pokaże Ci wiele różnych sposobów mnożenia list, każdy z przykładowym kodem i objaśnionymi wynikami.

Zacznijmy!

Spis treści

2 rodzaje mnożenia list numerycznych w Pythonie

Zanim zagłębimy się w konkretne metody, powinieneś zrozumieć typ mnożenia list, który osiągają.

Python ma kilka różnych koncepcji, które mieszczą się w szerokim pojęciu mnożenia list. Obejmuje to replikowanie list lub uzyskiwanie iloczynu kartezjańskiego elementów na liście.

Ten artykuł skupia się zamiast tego na dwóch typach arytmetycznego mnożenia elementów na liście:

  1. Mnożenie przez wartość

  2. Mnożenie elementarne

Rzućmy okiem na te dwa pojęcia.

1. Mnożenie przez wartość

Gdy masz listę liczb całkowitych, możesz chcieć pomnożyć każdy element przez określoną wartość. Na przykład masz listę [1, 2, 3] i chcesz pomnożyć każdy element przez wartość 3.

Możesz spróbować (niepoprawnie) użyć operatora mnożenia, jak w tym fragmencie kodu:

list1 = [1, 2, 3]
result = list1 * 3

Możesz być zaskoczony, że wynikiem jest [1, 2, 3, 1, 2, 3, 1, 2, 3]. Jest to znane jako replikacja listy .

2. Mnożenie listy według elementów

Załóżmy, że masz dwie listy: [1, 2, 3] i [4, 5, 6]

Chcesz pomnożyć elementy w tym samym indeksie na liście, aby uzyskać [4, 10, 18] jako wynik.

Jeśli spróbujesz pomnożyć razem dwie listy Pythona za pomocą operatora „*”, pojawi się błąd:

TypeError: nie można pomnożyć sekwencji przez inny niż int typu „lista”

Dzieje się tak, ponieważ operator mnożenia nie jest przeznaczony do pracy z listami w taki sposób, jak z liczbami całkowitymi lub zmiennoprzecinkowymi. Zamiast tego mnożenie list wymaga operacji znanej jako mnożenie elementów.

Mnożenie elementarne łączy w pary odpowiednie elementy z dwóch list i mnoży je razem, tworząc nową listę.

Teraz, gdy rozumiesz te dwa pojęcia. przepracujmy szereg technik, aby osiągnąć prawidłowe wyniki.

Jak używać pętli For do wielu elementów listy w Pythonie

Jak mnożyć listy w Pythonie: 7 szybkich sposobów

Załóżmy, że chcesz pomnożyć elementy listy przez wartość. W przypadku tego podejścia można iterować elementy za pomocą pętli for i mnożyć każdy z nich przez drugą wartość.

Oto przykład z jedną listą. Zmienna wynikowa zawiera listę wyjściową.

list1 = [1, 2, 3, 4]
factor = 3
result = []

for element in list1:
    result.append(element * factor)

W takim przypadku lista wyników będzie miała postać [3, 6, 9, 12].

Jak używać wyrażeń listowych do mnożenia

Wyrażenia listowe zapewniają zwięzły sposób wykonywania liczbowego mnożenia list. Otrzymasz taki sam wynik, jak przy użyciu pętli for , ale z bardziej zwartą składnią.

Oto poprzedni przykład użycia rozumienia listy:

list1 = [1, 2, 3, 4]
factor = 3
result = [element * factor for element in list1]

Ten kod daje takie same dane wyjściowe jak poprzednio: [3, 6, 9, 12].

Jak korzystać z funkcji Zip do mnożenia elementów

Jak mnożyć listy w Pythonie: 7 szybkich sposobów

Jeśli masz dwie listy liczb całkowitych, możesz chcieć pomnożyć listy według elementów. Oznacza to, że mnożysz pierwszy element z pierwszej listy razy pierwszy element z drugiej listy i tak dalej z elementami na tej samej pozycji.

Funkcja zip() może to osiągnąć, gdy połączysz ją ze zrozumieniem listy.

Funkcja łączy elementy dwóch list wejściowych, umożliwiając równoległe przeglądanie ich. Oto przykład użycia list o tym samym rozmiarze:

list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
result = [a * b for a, b in zip(list1, list2)]

W tym przypadku zmienna wynikowa będzie zawierała wynikową listę: [4, 10, 18].

Praca z krotkami i konstruktorami

Czasami może zaistnieć potrzeba pracy z listami zawierającymi krotki zamiast prostych liczb całkowitych.

Aby pomnożyć dwie listy krotek , możesz użyć kombinacji:

  • funkcja zip().

  • konstruktory krotek

  • listy zrozumiałe

Oto przykład:

list1 = [(1, 2), (3, 4)]
list2 = [(5, 6), (7, 8)]

result = [tuple(a * b for a, b in zip(t1, t2)) for t1, t2 in zip(list1, list2)]

Oto wynik: [(5, 12), (21, 32)].

Jak używać mapy i funkcji Lambda w Pythonie

Jak mnożyć listy w Pythonie: 7 szybkich sposobów

Funkcja map w Pythonie to wygodny sposób na zastosowanie funkcji do każdego elementu w iterowalnym obiekcie takim jak lista.

Funkcja lambda w Pythonie jest małą funkcją anonimową. Oznacza to, że jest to funkcja bez nazwy.

Aby pomnożyć dwie listy według elementów, możesz połączyć funkcje map i lambda:

list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(lambda x, y: x * y, list1, list2))

Zmienna wynikowa będzie zawierała zwielokrotnione listy: [4, 10, 18].

Jak korzystać z modułu operatora w Pythonie

Moduł operatora zapewnia bogactwo przydatnych funkcji do pracy z różnymi strukturami i typami danych.

Funkcji operator.mul() można użyć do mnożenia list liczb całkowitych w połączeniu z funkcją map.

import operator

list1 = [1, 2, 3]
list2 = [4, 5, 6]

result = list(map(operator.mul, list1, list2))

W tym przykładzie importujesz moduł operatora i używasz funkcji mul() wraz z wbudowaną funkcją map() Pythona do mnożenia każdego elementu z dwóch list.

Zmienna wynikowa będzie zawierała zwielokrotnione listy: [4, 10, 18].

Biblioteka NumPy: funkcje tablicowe i mnożące

Jak mnożyć listy w Pythonie: 7 szybkich sposobów

Biblioteka NumPy to potężna biblioteka zewnętrzna w Pythonie, szeroko stosowana do obliczeń numerycznych i pracy z tablicami. Ta biblioteka jest szczególnie wydajna w przypadku dużych tablic lub tablic wielowymiarowych.

Aby użyć NumPy, możesz zainstalować go za pomocą pip:

pip install numpy

Aby wykonać mnożenie elementów na dwóch listach za pomocą NumPy, wykonaj następujące ogólne kroki:

  1. Przekonwertuj każdą listę na tablicę NumPy za pomocą numpy.array() .

  2. Wykonaj mnożenie za pomocą funkcji mnożenia NumPy.

  3. Opcjonalnie przekonwertuj wynik z powrotem na listę Pythona, używając metody tolist().

Oto przykład kodu:

import numpy as np

list1 = [1, 2, 3]
list2 = [4, 5, 6]
arr1 = np.array(list1)
arr2 = np.array(list2)

res_arr = np.multiply(arr1, arr2)
result = res_arr.tolist()

Zwróci to ten sam wynik, co w poprzednich przykładach: [4, 10, 18].

Jak połączyć Functools i NumPy w Pythonie

Biblioteka functools zawiera funkcję reduce, która stosuje określoną funkcję kumulatywnie do elementów na liście, redukując listę do pojedynczej wartości.

Aby pomnożyć dwie listy za pomocą funkcji reduce() , możesz połączyć ją z funkcją mnożenia z biblioteki NumPy.

Oto przykład:

from functools import reduce
import numpy as np

list1 = [1, 2, 3]
list2 = [4, 5, 6]

result = reduce(np.multiply, [list1, list2])

Ten kod importuje niezbędne biblioteki i używa funkcji reduce() wraz z numpy.multiply() do wykonania mnożenia elementów dwóch list.

Praca z listami i innymi strukturami danych w Pythonie

Większość aspektów analizy danych wymaga pracy z listami, zestawami i innymi strukturami danych. Na przykład wykorzystasz swoją wiedzę podczas obsługi brakujących danych za pomocą interpolacji.

Obejrzyj ten film, aby zapoznać się z zaawansowanymi technikami:

Końcowe przemyślenia

Poznałeś różne metody arytmetycznego mnożenia list w Pythonie. Niektóre używają tylko wbudowanych modułów i funkcji, podczas gdy inne polegają na bibliotekach innych firm.

Możliwość wykonywania mnożenia elementów otwiera drzwi do niezliczonych zastosowań. Od analizy danych po uczenie maszynowe, operacje te są istotną częścią wielu algorytmów i zadań obliczeniowych.

Chociaż ten artykuł skupiał się na mnożeniu, koncepcje, których się nauczyłeś, rozciągają się również na inne operacje. Elementarne dodawanie, odejmowanie i dzielenie można również wykonać w podobny sposób.

Pamiętaj, że najlepszym sposobem na ugruntowanie tych koncepcji jest ich zastosowanie — więc śmiało, odpal swoje środowisko Pythona i zacznij eksperymentować. Niezależnie od tego, czy automatyzujesz zadania, manipulujesz danymi, czy tworzysz złożone oprogramowanie, te techniki z pewnością się przydadzą.

Miłego Pythona!

Leave a Comment

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.

Funkcje zbierania w Microsoft Power Automate

Funkcje zbierania w Microsoft Power Automate

Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.

Oceń wydajność kodu DAX w DAX Studio

Oceń wydajność kodu DAX w DAX Studio

Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.