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!

Leave a Comment

Skapa en datumtabell i LuckyTemplates

Skapa en datumtabell i LuckyTemplates

Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.