Tässä artikkelissa käyn läpi, miten alkioita poistetaan listalta. Listojen käsittelyä 1 -sivulla kertoilin, miten alkioita voidaan lisätä listaan.
Kaikkien alkioiden poistaminen listalta yhdellä kertaa
Kun halutaan tyhjentää lista yhdellä kertaa kaikista alkioista, tähän löytyy eri tapoja, joista käsittelen kaksi. Metodi clear tyhjentää listan kertarykäisyllä.
lista = [1, 2, 3, 4, 5]
lista.clear()
print(lista)
[]
Saman asian ajaa del lista[:]
. Tässä koodissa lista[:]
tarkoittaa koko listan, sen kaikkien alkioiden valitsemista.
lista = ["pippuri", "oregano", "basilika", "rakuuna", "curry"]
del lista[:]
print(lista)
[]
Yksittäisen alkion poistaminen listalta
Kun tiedämme, minkä alkion haluamme poistaa listalta, voimme käyttää remove-metodia. Alla olevaan mausteet-listaan on erehdyksessä joutunut yksi aines, joka vaikkakin saattaisi hieman “maustaa” ruokaa, voisi aiheuttaa myös kalliin matkan hammaslääkäriin. 😉 Se on siis poistettava listalta.
mausteet = ["basilika", "oregano", "mutteri", "rakuuna", "curry"]
mausteet.remove("mutteri")
print(mausteet)
['basilika', 'oregano', 'rakuuna', 'curry']
HUOM! Remove-metodi poistaa listalta vain ensimmäisen parametrin mukaisen alkion. Jos listalla olisi toinen mutteri, se jäisi sinne. Jos epäilemme, että listalla on muttereita enemmänkin, ja haluamme poistaa ne kaikki, niin silloin voimme käyttää for-silmukkaa ja käydä mausteet-listaa läpi alkio alkiolta ja poistaa mutterit sitä mukaa listalta.
mausteet = ["basilika", "oregano", "mutteri", "rakuuna", "mutteri", "curry", "mutteri", "mutteri"]
for alkio in mausteet:
----if "mutteri" in mausteet:
--------mausteet.remove("mutteri")
print(mausteet)
['basilika', 'oregano', 'rakuuna', 'curry']
Kun haluamme poistaa alkion tietystä paikasta, voimme käyttää pop-metodia. Meidän ei siis tarvitse tietää alkiota, ainoastaan sen paikka listassa, esim. nimet[2]
, eli haluamme poistaa nimet-listalta alkion paikasta 2, ja kukas sitten joutuu leikistä pois. Katsotaan…
nimet = ["Ana", "Carlos", "Jorge", "Eva", "Pedro"]
nimet.pop(2)
print(nimet)
['Ana', 'Carlos', 'Eva', 'Pedro']
¡Adiós, Jorge! 😀
Kun Jorge on poistettu listalta, sen jälkeen tulevien paikat siirtyvät yhden askeleen eteenpäin. Evan paikka muuttuu siis 3:sta 2:ksi ja Pedron 4:stä 3:ksi.
Jos kuitenkin haluamme säilyttää Jorgen varalla, voimme palauttaa hänet omaan muuttujaan (tässä esimerkiksi varalla-nimiseen).
nimet = ["Ana", "Carlos", "Jorge", "Eva", "Pedro"]
varalla = nimet.pop(2)
print(nimet)
['Ana', 'Carlos', 'Eva', 'Pedro']
print(varalla)
Jorge
Listan alkion korvaaminen toisella alkiolla
Alkion voi poistaa myös siten, että korvaa sen jollain toisella alkiolla.
nimet = ["Ana", "Carlos", "Jorge", "Eva", "Pedro"]
nimet[2] = "Javier"
print(nimet)
['Ana', 'Carlos', 'Javier', 'Eva', 'Pedro']
Eli Javier pääsi kentälle Jorgen tilalle, ja Jorge joutui filttiketjuun. 😀
Tässä toinen Python-listoja käsittelevä artikkeli. Jos löysit virheitä tai muuta kommentoitavaa, heitä minua sähköpostiviestillä. 😀
PS. For-silmukssa olen käyttänyt sisennykseen valkoisia tavuviivoja, jotka eivät kuulu koodiin, vaan siinä kuuluisi olla pelkkä sisennys. Span class -sisennys ei suostu toimimaan WordPressissä, ainakaan minulla, joten on tyydyttävä tällaiseen kepuliratkaisuun. 😉