Hur man multiplicerar listor i Python: 7 snabba sätt

Att multiplicera listor i Python är en vanlig operation när man utför matematiska beräkningar eller löser problem vid datamanipulation. Det finns flera sätt att utföra denna uppgift, beroende på dina krav och de bibliotek du har tillgängliga.

För att multiplicera listor i Python kan du använda för loopar, listförståelse, zip- och kartfunktioner, eller den inbyggda funktionsverktygsmodulen. Du kan också använda funktioner från ett externt Python-bibliotek som NumPy.

Den här artikeln kommer att visa dig många olika sätt att multiplicera listor, var och en med ett kodexempel och förklarade resultat.

Låt oss börja!

Innehållsförteckning

2 typer av numerisk listmultiplikation i Python

Innan vi dyker in i de specifika metoderna bör du förstå vilken typ av listmultiplikation de uppnår.

Python har flera olika begrepp som ligger under den breda termen listmultiplikation. Det inkluderar att replikera listor eller att uppnå den kartesiska produkten av element i en lista.

Den här artikeln fokuserar istället på två typer av aritmetisk multiplikation av element i en lista:

  1. Multiplikation med värde

  2. Elementvis multiplikation

Låt oss ta en snabb titt på dessa två begrepp.

1. Multiplikation med värde

När du har en lista med heltal kanske du vill multiplicera varje element med ett specifikt värde. Till exempel har du en lista [1, 2, 3] och du vill multiplicera varje element med värdet 3.

Du kan försöka (felaktigt) att använda multipliceringsoperatorn som i denna kodbit:

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

Du kanske blir förvånad över att resultatet är [1, 2, 3, 1, 2, 3, 1, 2, 3]. Detta kallas listreplikering .

2. Element-Wise List Multiplikation

Anta att du har två listor: [1, 2, 3] och [4, 5, 6]

Du vill multiplicera elementen med samma index i listan för att få [4, 10, 18] som resultat.

Om du försöker multiplicera två med operatorn '*' får du ett felmeddelande:

TypeError: kan inte multiplicera sekvensen med icke-int av typen "list"

Detta beror på att multiplikationsoperatorn inte är utformad för att fungera med listor på det sätt som den gör med heltal eller flytande tal. Istället kräver multiplicering av listor en operation som kallas elementvis multiplikation.

Elementvis multiplikation parar ihop motsvarande element från två listor och multiplicerar dem tillsammans och bildar en ny lista.

Nu när du förstår dessa två begrepp. låt oss arbeta igenom en rad olika tekniker för att uppnå rätt resultat.

Hur man använder en för loop till flera listelement i Python

Hur man multiplicerar listor i Python: 7 snabba sätt

Anta att du vill multiplicera element med ett värde. För detta tillvägagångssätt kan du iterera genom elementen med a och multiplicera var och en med ett andra värde.

Här är ett exempel med en lista. Resultatvariabeln håller utdatalistan.

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

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

I det här fallet blir resultatlistan [3, 6, 9, 12].

Hur man använder listförståelser för multiplikation

Listförståelser ger ett kortfattat sätt att utföra den numeriska typen av listmultiplikationer. Du får samma resultat som att använda en for -loop, men med en mer kompakt syntax.

Här är det föregående exemplet med listförståelse:

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

Denna kod resulterar i samma utdata som tidigare: [3, 6, 9, 12].

Hur man använder Zip-funktionen för elementvis multiplikation

Hur man multiplicerar listor i Python: 7 snabba sätt

Om du har två listor med heltal, kanske du vill multiplicera listorna elementvis. Detta innebär att du multiplicerar det första elementet i den första listan gånger det första elementet i den andra listan och så vidare med element i samma position.

Zip () -funktionen kan uppnå detta när du kombinerar den med listförståelse.

Funktionen kombinerar elementen i två inmatningslistor, så att du kan loopa över dem parallellt. Här är ett exempel med listor av samma storlek:

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

I det här fallet kommer resultatvariabeln att hålla resultatlistan: [4, 10, 18].

Arbeta med tuplar och konstruktörer

Ibland kan du behöva arbeta med listor som innehåller tupler snarare än enkla heltal.

För att multiplicera två listor med tupler kan du använda en kombination av:

  • zip() funktion

  • tupelkonstruktörer

  • listförståelser

Här är ett exempel:

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)]

Detta är resultatet: [(5, 12), (21, 32)].

Hur man använder en karta och lambdafunktion i Python

Hur man multiplicerar listor i Python: 7 snabba sätt

Kartfunktionen i Python är ett bekvämt sätt att tillämpa en funktion på varje objekt i en iterabel som en lista.

En lambdafunktion i Python är en liten anonym funktion. Det betyder att det är en funktion utan namn.

För att multiplicera två listor elementmässigt kan du kombinera kart- och lambdafunktioner:

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

Resultatvariabeln kommer att hålla de multiplicerade listorna: [4, 10, 18].

Hur man använder operatörsmodulen i Python

Operatörsmodulen ger en mängd användbara funktioner för att arbeta med olika datastrukturer och typer.

Funktionen operator.mul() kan användas för att multiplicera listor med heltal när du kombinerar den med kartfunktionen.

import operator

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

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

I det här exemplet importerar du operatormodulen och använder mul() -funktionen tillsammans med Pythons inbyggda map()- funktion för att multiplicera varje element i de två listorna.

Resultatvariabeln kommer att hålla de multiplicerade listorna: [4, 10, 18].

NumPy Library: Array- och multipliceringsfunktionerna

Hur man multiplicerar listor i Python: 7 snabba sätt

NumPy - biblioteket är ett kraftfullt externt bibliotek i Python, flitigt använt för numerisk beräkning och arbete med arrayer. Detta bibliotek är särskilt effektivt när det gäller stora arrayer eller flerdimensionella arrayer.

För att använda NumPy kan du installera det med pip:

pip install numpy

För att utföra elementvis multiplikation i två listor med NumPy, följ dessa allmänna steg:

  1. Konvertera varje lista till en NumPy-array med numpy.array() .

  2. Utför multiplikationen med NumPy multiplikationsfunktionen.

  3. Alternativt kan du konvertera resultatet tillbaka till en Python-lista med metoden tolist().

Här är ett kodexempel:

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()

Detta kommer att returnera samma resultat som i de tidigare exemplen: [4, 10, 18].

Hur man kombinerar Functools och NumPy i Python

Functools - biblioteket innehåller en reduceringsfunktion som tillämpar en specifik funktion kumulativt på objekten i en lista, vilket reducerar listan till ett enda värde.

För att multiplicera två listor med reduce() -funktionen kan du kombinera den med multipliceringsfunktionen från NumPy-biblioteket.

Här är ett exempel:

from functools import reduce
import numpy as np

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

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

Den här koden importerar de nödvändiga biblioteken och använder reduce()- funktionen tillsammans med numpy.multiply() för att utföra elementvis multiplikation av de två listorna.

Arbeta med listor och andra datastrukturer i Python

De flesta aspekter av dataanalys kräver arbete med och andra datastrukturer. Till exempel kommer du att använda dina kunskaper när du hanterar saknade data med interpolering.

Kolla in den här videon för några avancerade tekniker:

Slutgiltiga tankar

Du har lärt dig olika metoder för att multiplicera listor aritmetiskt i Python. Vissa använder bara inbyggda moduler och funktioner, medan andra förlitar sig på tredjepartsbibliotek.

Möjligheten att utföra elementvis multiplikation öppnar dörren till en myriad av applikationer. Från dataanalys till maskininlärning är dessa operationer en viktig del av många algoritmer och beräkningsuppgifter.

Även om den här artikeln fokuserade på multiplikation, sträcker sig begreppen du lärde dig till andra operationer också. Elementvis addition, subtraktion och division kan också utföras på ungefär samma sätt.

Kom ihåg att det bästa sättet att befästa dessa begrepp är genom att tillämpa dem - så fortsätt, starta din Python-miljö och börja experimentera. Oavsett om du automatiserar uppgifter, manipulerar data eller bygger komplex mjukvara, kommer dessa tekniker utan tvekan att vara användbara.

Glad Pythonning!


Vad är Power Query & M Language: En detaljerad översikt

Vad är Power Query & M Language: En detaljerad översikt

Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.

Skapa en paginerad rapport: Lägga till texter och bilder

Skapa en paginerad rapport: Lägga till texter och bilder

Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.

SharePoint Automate-funktionen | En introduktion

SharePoint Automate-funktionen | En introduktion

Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!

Löpande summor i LuckyTemplates med DAX

Löpande summor i LuckyTemplates med DAX

Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.

LuckyTemplates Slope Chart: En översikt

LuckyTemplates Slope Chart: En översikt

Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.

LuckyTemplates färgteman för enhetliga visualiseringar

LuckyTemplates färgteman för enhetliga visualiseringar

Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.