Listat (tai taulukot) ovat yleinen ohjelmoinnin apuväline. Listaan voidaan tallentaan mitä tahansa tietoa tai jopa toisia listoja. Yleensä ohjelmointikieli tarjoaa tehokkaat tavat hakea, järjestää ja muokata listoista.
Lista tehdään antamalla listan nimi ja sijoittamalla hakasulkeisiin listan alkiot pilkuilla erotettuna:
minunLista = ["Matti", "Pekka", "Marja", "Tuija"]
Tässä listaan on tallennettu nimiä, mutta listan alkioina voisi olla lukuja tai muita muuttujatyyppejä.
Listan ensimmäinen alkio on aina indeksiltään 0 ja siihen viitataan listan nimellä ja laittamalla indeksinumero hakasulkeisiin:
ekaAlkio = minunLista[0]tai jos halutaan suoraan tulostaa alkio, niin:
print(minunLista[0])Muut alkiot voidaan tulostaa vastaavasti viittaamalla niiden indeksiin:
minunLista = ["Matti", "Pekka", "Marja", "Tuija"] print(minunLista[1]) print(minunLista[2]) print(minunLista[3])
Tehdään seuraavaksi funktio, mikä poistaa listasta alkion. Tämä tehdään del-käskyllä, mikä tarvitsee vielä listan nimen ja poistettavan indeksin:
del minunLista[0]
minunLista = ["Matti", "Pekka", "Marja", "Tuija"] print(minunLista[0]) #tulostaa "Matti" del minunLista[0] #poistetaan ensimmäinen alkio print(minunLista[0]) #nyt ensimmäinen on "Pekka"
Muita valmiiksi tarjottuja funktioita listan käsittelyyn ovat mm:
minunLista = ["Matti", "Pekka", "Marja", "Tuija"] def tulostaNimet(): print(minunLista) #tulostaa listan def poistaNimi(): del minunLista[0] #poistaa listasta 0:n alkion def lisaaListaan(): minunLista.insert(1,"Pentti") #lisää listaan "Pentti" indeksiin 1 def listanPituus(): pituus = len(minunLista) #hakee listan pituuden print(pituus) def jarjestaLista(): minunLista.sort() #järjestää listan tulostaNimet() poistaNimi() tulostaNimet() lisaaListaan() tulostaNimet() jarjestaLista() tulostaNimet() listanPituus()
Oletetaan listojen olevan:
lista1 = [1,8,8]; lista2 = [4,3,6];
Operaatio | Esimerkki | Tulos |
Yhdistäminen: | lista1 + lista2 | [1,8,8,4,3,6] |
Laskee yhteen listan alkiot: | sum(lista1) | 17 |
Onko listassa: | 8 in lista1 | True |
Listan suurin arvo: | max(lista2) | 6 |
Listan pienin arvo: | min(lista1) | 1 |
Lasketaan esiintyminen: | lista1.count(8) | 2 |
Lisätään listaan: | lista1.append(4) | [1,8,8,4] |
Haetaan indeksi: | lista1.index(8) | 1 |
Käännetään listan järjestys: | lista1.reverse() | [8,8,1] |
Listan sekoitus: | random.shuffle(lista1) | esim. [8,1,8], tarvitsee import random ohjelman alkuun |
Lista voidaan käydä läpi for in -lauseella.
minunLista = ["Matti", "Pekka", "Marja", "Tuija"] def tulostaNimet(): for alkio in minunLista: #tee jokaiselle alkiolle listassa print(alkio) #tee jotain listan alkiolla #Huom! muuttujan nimen voi itse valita tulostaNimet()
Tee ohjelma, mikä kysyy viiden ihmisen nimet.
Ohjelma tulostaa nimet aakkosjärjestyksessä.
Suorita tehtävät Editorilla ja tallenna työsi Tiedostona.
Tee ohjelma, mikä kysyy lukuja, kunnes käyttäjä antaa käskyn "lopeta".
Kun kirjoitat "lopeta", ohjelma tulostaa käyttäjän antamista luvuista suurimman luvun, pienimmän luvun ja laskee lukujen keskiarvon.
Suorita tehtävät Editorilla ja tallenna työsi Tiedostona.