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!


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.