Listák szorzása Pythonban: 7 gyors módszer

A listák szorzása a Pythonban gyakori művelet matematikai számítások végzésekor vagy adatkezelési problémák megoldása során. Számos módja van ennek a feladatnak az Ön igényeitől és a rendelkezésre álló könyvtáraktól függően.

Listák szorzásához Pythonban használhatja a ciklusokhoz, listaértési, zip- és leképezési funkciókat vagy a beépített functools modult. Külső Python-könyvtárak, például a NumPy függvényei is használhatók.

Ez a cikk számos különböző módot mutat be a listák szorzására, mindegyikhez egy kódpéldát és magyarázatot adunk.

Kezdjük el!

Tartalomjegyzék

2 numerikus lista szorzás típusa Pythonban

Mielőtt belemerülnénk a konkrét módszerekbe, meg kell értenie, hogy milyen típusú listaszorzás érhető el.

A Pythonnak számos különböző fogalma van, amelyek a listaszorzás tág fogalma alá tartoznak. Ez magában foglalja a listák replikálását vagy a listán belüli elemek derékszögű szorzatának elérését.

Ez a cikk a listán belüli elemek kétféle aritmetikai szorzására összpontosít:

  1. Szorzás értékkel

  2. Elemi szorzás

Vessünk egy pillantást erre a két fogalomra.

1. Szorzás értékkel

Ha van egész számok listája, érdemes lehet minden elemet megszorozni egy adott értékkel. Például van egy listája [1, 2, 3], és minden elemet meg szeretne szorozni 3-as értékkel.

Megpróbálhatja (helytelenül) a szorzás operátort használni, mint ebben a kódrészletben:

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

Meglepődhet, hogy az eredmény [1, 2, 3, 1, 2, 3, 1, 2, 3]. Ezt listareplikációnak nevezik .

2. Elem-bölcs lista szorzás

Tegyük fel, hogy két listája van: [1, 2, 3] és [4, 5, 6]

A listán belül ugyanabban az indexben lévő elemeket meg akarja szorozni, hogy az eredmény [4, 10, 18] legyen.

Ha a „*” operátor használatával megpróbálja megszorozni a kettőt, hibaüzenetet kap:

TypeError: a sorozat nem szorozható meg a "list" típusú non-int-vel

Ennek az az oka, hogy a szorzóoperátort nem úgy tervezték, hogy a listákkal úgy működjön, mint az egész számokkal vagy a lebegőpontokkal. Ehelyett a listák szorzásához elemenkénti szorzásként ismert műveletre van szükség.

Az elemenkénti szorzás két lista megfelelő elemeit párosítja, és összeszorozza őket, így egy új listát alkot.

Most, hogy megértette ezt a két fogalmat. dolgozzunk végig egy sor technikán a megfelelő eredmények elérése érdekében.

Hogyan használjunk For ciklust több listaelemhez a Pythonban

Listák szorzása Pythonban: 7 gyors módszer

Tegyük fel, hogy meg akarja szorozni az elemeket egy értékkel. Ehhez a megközelítéshez ismételheti az elemeket a-val, és mindegyiket megszorozhatja egy második értékkel.

Íme egy példa egy listával. Az eredmény változó tartalmazza a kimeneti listát.

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

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

Ebben az esetben az eredménylista a következő lesz: [3, 6, 9, 12].

A listaértelmezések használata szorzáshoz

A listaértelmezések tömör módot adnak a numerikus típusú listaszorzások végrehajtására. Ugyanazt az eredményt kapja, mint a for ciklus használatával, de kompaktabb szintaxissal.

Íme az előző példa a listaértés használatára:

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

Ez a kód ugyanazt a kimenetet eredményezi, mint korábban: [3, 6, 9, 12].

A Zip függvény használata elemi alapú szorzáshoz

Listák szorzása Pythonban: 7 gyors módszer

Ha két egész számlistája van, érdemes lehet elemenként szorozni a listákat. Ez azt jelenti, hogy az első lista első elemét megszorozza a második lista első elemével, és így tovább az azonos pozíciójú elemekkel.

A zip() függvény akkor érheti el ezt, ha kombinálja a lista megértésével.

A funkció két beviteli lista elemeit egyesíti, lehetővé téve, hogy párhuzamosan hurkoljuk őket. Íme egy példa azonos méretű listák használatára:

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

Ebben az esetben az eredményváltozó tartalmazza az eredménylistát: [4, 10, 18].

Tuplesekkel és konstruktorokkal való munka

Néha előfordulhat, hogy egyszerű egész számok helyett sorokat tartalmazó listákkal kell dolgoznia.

A sorok két listájának szorzásához a következők kombinációját használhatja:

  • zip() függvény

  • tuple konstruktorok

  • felsorolja a megértéseket

Íme egy példa:

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

Ez az eredmény: [(5, 12), (21, 32)].

A térkép és a lambda függvény használata Pythonban

Listák szorzása Pythonban: 7 gyors módszer

A Python térképfunkciója kényelmes módja annak, hogy egy iterálható elemre, például egy listára, egy függvényt alkalmazzon.

A Python lambda függvénye egy kis névtelen függvény. Ez azt jelenti, hogy ez egy név nélküli függvény.

Két lista elemenkénti szorzásához kombinálhatja a térkép és a lambda függvényeket:

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

Az eredményváltozó a szorzott listákat tartalmazza: [4, 10, 18].

Az operátori modul használata Pythonban

Az operátori modul rengeteg hasznos funkciót biztosít a különböző adatstruktúrákkal és adattípusokkal való munkavégzéshez.

Az operator.mul() függvény egész számok listájának szorzására használható, ha kombinálja a térképfüggvénnyel.

import operator

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

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

Ebben a példában importálja az operátormodult, és a mul() függvényt használja a Python beépített map() függvényével együtt a két lista egyes elemeinek megszorzásához.

Az eredményváltozó a szorzott listákat tartalmazza: [4, 10, 18].

NumPy Library: A tömb és szorzás függvények

Listák szorzása Pythonban: 7 gyors módszer

A NumPy könyvtár egy hatékony külső könyvtár a Pythonban, amelyet széles körben használnak numerikus számításokhoz és tömbökkel való munkához. Ez a könyvtár különösen hatékony nagy tömbök vagy többdimenziós tömbök kezelésekor.

A NumPy használatához a pip használatával telepítheti:

pip install numpy

Ha elemenkénti szorzást szeretne végrehajtani két listában a NumPy használatával, kövesse az alábbi általános lépéseket:

  1. Konvertálja az egyes listákat NumPy tömbbé a numpy.array() segítségével .

  2. Hajtsa végre a szorzást a NumPy szorzási függvény segítségével.

  3. Opcionálisan konvertálja vissza az eredményt Python-listává a tolist() metódus használatával

Íme egy kódpélda:

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

Ez ugyanazt az eredményt adja vissza, mint az előző példákban: [4, 10, 18].

A Functools és a NumPy kombinálása Pythonban

A functools könyvtár egy redukciós függvényt tartalmaz, amely egy adott függvényt kumulatívan alkalmaz a lista elemeire, és a listát egyetlen értékre csökkenti.

Két lista szorzásához a Reduction() függvénnyel kombinálhatja a NumPy könyvtár szorzási függvényével.

Íme egy példa:

from functools import reduce
import numpy as np

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

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

Ez a kód importálja a szükséges könyvtárakat, és a redukció() függvényt használja a numpy.multiply() függvénysel együtt a két lista elemenkénti szorzásához.

Listák és egyéb adatstruktúrák használata Pythonban

Az adatelemzés legtöbb aspektusa más adatstruktúrákkal való együttműködést igényel. Például tudását hasznosítani fogja a hiányzó adatok interpolációval történő kezelésekor.

Nézze meg ezt a videót néhány fejlett technikáért:

Végső gondolatok

Különféle módszereket tanult meg a listák aritmetikai szorzására Pythonban. Néhányan csak beépített modulokat és funkciókat használnak, míg mások harmadik féltől származó könyvtárakra támaszkodnak.

Az elemenkénti szorzás képessége számtalan alkalmazás előtt nyitja meg a kaput. Az adatelemzéstől a gépi tanulásig ezek a műveletek számos algoritmus és számítási feladat lényeges részét képezik.

Míg ez a cikk a szorzásra összpontosított, a tanult fogalmak más műveletekre is kiterjednek. Az elemenkénti összeadás, kivonás és osztás is nagyjából ugyanúgy végrehajtható.

Ne feledje, hogy ezeknek a fogalmaknak a megszilárdításának legjobb módja az, ha alkalmazzuk őket – tehát folytassa, indítsa be Python-környezetét, és kezdje el a kísérletezést. Akár feladatokat automatizál, akár adatokat manipulál, akár összetett szoftvereket épít, ezek a technikák kétségtelenül hasznosak lesznek.

Boldog Pythonozást!


Mi az a Power Query & M Language: Részletes áttekintés

Mi az a Power Query & M Language: Részletes áttekintés

Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

Ismerje meg, hogyan hozhat létre oldalszámozott jelentést, hogyan adhat hozzá szövegeket és képeket, majd exportálhatja a jelentést különböző dokumentumformátumokba.

A SharePoint automatizálási szolgáltatás | Bevezetés

A SharePoint automatizálási szolgáltatás | Bevezetés

Ismerje meg, hogyan használhatja a SharePoint automatizálási funkcióját munkafolyamatok létrehozására, és segít a SharePoint-felhasználók, -könyvtárak és -listák mikrokezelésében.

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

Fejlessze jelentéskészítési készségeit, ha csatlakozik egy adatelemzési kihíváshoz. Az Accelerator segítségével LuckyTemplates szuperfelhasználóvá válhatsz!

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

Ismerje meg, hogyan számíthatja ki a futó összegeket a LuckyTemplates programban a DAX segítségével. Az összesítések futtatása lehetővé teszi, hogy ne ragadjon le egyetlen egyéni eredménynél sem.

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

Ismerje meg a változók fogalmát a DAX-ban a LuckyTemplates-en belül, és a változók hatásait a mérőszámok kiszámítására.

LuckyTemplates lejtődiagram: Áttekintés

LuckyTemplates lejtődiagram: Áttekintés

Tudjon meg többet a LuckyTemplates Slope diagram nevű egyéni vizualizációról, amely egyetlen vagy több mérőszám növekedésének/csökkenésének megjelenítésére szolgál.

LuckyTemplates színes témák az egységes vizualizációkhoz

LuckyTemplates színes témák az egységes vizualizációkhoz

Fedezze fel a LuckyTemplates színtémáit. Ezek elengedhetetlenek ahhoz, hogy jelentései és vizualizációi zökkenőmentesen nézzenek ki és működjenek.

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

Az átlag kiszámítása a LuckyTemplates alkalmazásban számos módon elvégezhető, hogy pontos információkat kapjon üzleti jelentéseihez.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Nézzük meg a Standard LuckyTemplates Theming témakört, és tekintsünk át néhány olyan funkciót, amely magában a LuckyTemplates Desktop alkalmazásban található.