Joitakin päiviä takaperin työskentelin erään Python-projektin parissa ja jouduin käyttämään listoja. Loin tyhjän listan ja nimesin sen cost_array
. Eräs ystäväni näki tämän ja esitti kysymyksen:
”Mitä eroa on listalla ja arrayllä?”
Aloin miettiä, koska ennen olen aina pitänyt tyyppiä olevia tietoja Pythonissa listoina ja Javascriptissä arrayinä. Ilmeisesti Array on tietotyyppi myös Pythonissa, eli meillä on
array
-tyyppi ja list
-tyyppi (listatyyppi on suositumpi). Useimmat ihmiset pääsevät käyttämään matriiseja, kun he uskaltautuvat Data Scienceen ja hyödyntävät kirjastoja, kuten numpy
. Joukot ovat tieteellisten ja teknisten sovellusten tietorakenteiden todellinen työjuhta. Suosituin Pythonissa käytetty array-tyyppi on numpy
array.
- Kahtaakin käytetään tietojen tallentamiseen
- Kahtaakin voidaan muuttaa
- Kahtaakin voidaan indeksoida ja iteroida
- Kahtaakin voidaan viipaloida
Eroavaisuudet
Pääasiallisena erona näillä kahdella datatyypillä on operaatio, jonka voit suorittaa niille. Joukot on optimoitu erityisesti aritmeettisia laskutoimituksia varten, joten jos aiot suorittaa samankaltaisia operaatioita, kannattaa harkita joukon käyttämistä listan sijasta.
Luettelot ovat myös säiliöitä elementeille, joilla on erilaiset tietotyypit, mutta joukot ovat säiliöitä elementeille, joilla on sama tietotyyppi.
Alla oleva esimerkki on tulos, joka saadaan, kun joukko jaetaan tietyllä lukumäärällä, ja kun sama tehdään listalle. Kun yritämme samaa operaatiota (esimerkki: jakaminen) listalle, saamme TypeErrorin, koska pythonin sisäänrakennetut listat eivät tue `__div__`-protokollaa. Tämän laskutoimituksen suorittaminen listalla vaatii ylimääräisen vaiheen, koska silloin pitäisi käydä silmukassa läpi jokainen kohde yksi kerrallaan ja tallentaa toiseen listaan.
Stressi!!