nimi1, nimi2, nimi3, ..., nimi100 olisi hankalaa. Kun nimet ovat listassa, kaikkiin nimiin voi viitata helposti yhden muuttujan nimet kautta.Listojen merkittävä etu on, että ohjelman rakenne pysyy samana, vaikka tiedon määrä olisi vaihteleva. Esimerkiksi nimien käsittelyssä samanlainen ohjelma kelpaa tilanteissa, joissa nimiä on viisi, sata ja miljoona. Lisäksi vaikka tiedon määrä olisi pieni, listat voivat selventää ohjelman rakennetta.
Lista on yleisin Python-kielen valmiista tietorakenteista ja soveltuu moniin ohjelmointitehtäviin. Lisää esimerkkejä listan sovelluksista tulee vastaan opassarjan myöhemmissä osissa.
Lista
Lista on muuttuja, joka sisältää kokoelman alkioita tietyssä järjestyksessä. Listassa olevat alkiot voivat olla esimerkiksi lukuja tai merkkijonoja.Seuraavassa ohjelmassa on lista
nimet, joka sisältää
nimet Henrikki, Uolevi ja Antti. Ohjelma tulostaa ensin nimet yksi
kerrallaan ja sitten uudestaan koko listan. Tämän jälkeen ohjelma
muuttaa Uolevin nimeksi Einari ja tulostaa vielä koko listan.Ohjelman tulostus on seuraava:
Ensin tulee Markus Sitten on Mikael Viimeisenä on Elisa
Tässä vielä koko joukko: ['Markus', 'Mikael', 'Elisa'] Toinen onkin Einari Tässä vielä koko joukko: ['Markus', 'Einari', 'Elisa']
nimet[0] on ensimmäinen nimi, nimet[1] on toinen nimi ja nimet[2] on kolmas nimi. Listan koko sisällön voi tulostaa antamalla pelkän listan nimen print-komennolle.Esimerkki: Kuukaudet
Yksi listan käyttötarkoitus on, että se toimii ohjelman tietovarastona. Seuraavassa ohjelmassa lista sisältää kuukausien nimet suomeksi, jolloin ohjelman on helppoa nimetä käyttäjän antama kuukausi.Ohjelman tulostus voi olla seuraava:
Anna kuukausi (1-12): 9 Kuukauden nimi: syyskuu
lista[8].Listassa oleminen
Totuusarvoalkio in lista on tosi, jos alkio on listassa. Vastaavasti totuusarvo alkio not in lista on tosi, jos alkio ei ole listassa. Seuraava ohjelma tulostaa eri viestin listassa oleville käyttäjille.Tässä on ohjelman mahdollisia tulostuksia:
Anna nimi: Markus Mitä uutta, kuoma?
Anna nimi: Sakke Et kuulu sisäpiiriin!
Alkion lisääminen
Listaan voi lisätä alkioita metodillaappend.
Seuraavassa esimerkissä lista on aluksi tyhjä ja ohjelma lisää siihen
käyttäjän antamia sanoja. Ohjelma päättyy, kun käyttäjä antaa saman
sanan uudestaan.Ohjelman tulostus voi olla seuraava:
Kirjoita sana: talo Kirjoita sana: metsä Kirjoita sana: auto Kirjoita sana: tie Kirjoita sana: metsä Kirjoitit saman sanan uudestaan!
Kirjoitit sanat: ['talo','metsä','auto','tie']
Listan läpikäynti
Listassa olevat alkiot voi käydä läpifor-silmukalla.
Silmukalle annetaan muuttuja ja lista, jonka jälkeen muuttujan arvo on
silmukan joka kierroksella vuorollaan yksi listan alkioista.Seuraava ohjelma tulostaa kaikkien viikonpäivien nimet:
Ohjelman tulostus on seuraava:
maanantai tiistai keskiviikko torstai perjantai lauantai sunnuntai
Ohjelman tulostus voi olla seuraava:
Kirjoita sana: apina Kirjoita sana: banaani Kirjoita sana: cembalo Kirjoita sana: Kirjoitit 3 sanaa. Sanat ovat: apina banaani cembalo
len kertoo, kuinka monta alkiota listassa on.
Listan metodit
Listaan liittyvät mm. seuraavat metodit:| metodi | selitys |
|---|---|
lista.append(alkio) | lisää alkion listaan (tämä on jo tuttu) |
lista.index(alkio) | etsii alkion kohdan listassa |
lista.count(alkio) | laskee alkion esiintymiskerrat listassa |
lista.remove(alkio) | poistaa alkion listasta |
lista.sort() | järjestää listan alkiot |
lista.reverse() | kääntää listan toisinpäin |
Ohjelman tulostus voi olla seuraava:
Anna kuukauden nimi: syyskuu Kuukauden numero: 9
lista[8] ja ohjelma ilmoittaa numeroksi 9.Esimerkki: Presidentit
Seuraava ohjelma tarkistaa, kuinka monta presidenttiä käyttäjä muistaa:Ohjelman tulostus voi olla seuraava:
Kuinka monta presidenttiä muistat? Nimi: Kekkonen Oikein! Nimi: Virtanen Ei kelpaa! Nimi: Halonen Oikein! Nimi: Kekkonen Ei kelpaa! Nimi: Mannerheim Oikein! Nimi: Muistit 3 presidenttiä!
Esimerkki: Lukutilasto
Seuraava ohjelma lisää käyttäjän antamia lukuja listaan, kunnes käyttäjä antaa luvun nolla. Sitten ohjelma ilmoittaa listan pienimmän ja suurimman luvun, listan lukujen summan sekä järjestyksessä kaikki eri luvut esiintymiskertoineen.Ohjelman tulostus voi olla seuraava:
Kirjoita luku: 5 Kirjoita luku: 3 Kirjoita luku: 5 Kirjoita luku: 8 Kirjoita luku: 2 Kirjoita luku: 2 Kirjoita luku: 5 Kirjoita luku: 0 Pienin luku: 2 Suurin luku: 8 Lukujen summa: 30 Luku 2 on listassa 2 kertaa. Luku 3 on listassa 1 kertaa. Luku 5 on listassa 3 kertaa. Luku 8 on listassa 1 kertaa.
min, max ja sum
kertovat listan pienimmän luvun, suurimman luvun ja lukujen summan.
Ohjelma käy lopuksi läpi kaikki luvut mutta tulostaa jokaisen eri luvun
vain kerran. Tämän vuoksi ohjelma pitää muistissa muuttujassa vanha edellisen kierroksen lukua.







