Tehtäväsarja 4: Listat

Listat

  • Lista ja sen käsitteet
  • Listan arvojen tulostus
  • Listan muokkaaminen
  • Alkion lisääminen ja poistaminen
  • Suurimman ja pienimmän alkion etsiminen
  • Alkion järjestysluvun etsiminen
  • Tietyn Alkion arvon esiintymiskertojen laskeminen
  • Alkioiden kappalemäärän laskeminen
  • Alkioiden summan laskeminen

Lista ja sen käsitteet

Lista on kätevä tapa pitää kirjanpitoa eri asioista. Listassa olevat asiat määritellään hakasulkujen sisälle [] pilkulla erottaen. Ensimmäinen “asia” on alkio 0. Huom! numerointi alkaa nollasta! Listoissa voi olla lukuja tai sanoja.  Listat nimetään ,kuten muuttuja, seuraavien esimerkkien mukaisesti.

esimerkkilista1 = [“alkio 0”, “alkio 1”, “alkio 3”] # Tässä on lista nimeltään esimerkkilista ja siinä on kolme alkiota: alkio 0, alkio 1, alkio 3. 

esimerkkilista2 = [ 5, 7,10] # Tässä on lista nimeltään esimerkkilista ja siinä on kolme alkiota: 5, 7, 10.

Listan arvojen tulostus

Listat voidaan tulostaa kokonaisuudessaan tai halutut alkiot kerrallaan.

print(esimerkkilista1) # Tulostaa koko listan sisällön.

print(esimerkkilista1[2]) # Tulostaa valitun olion, tässä tapauksessa sanan “alkio 2”.

print(esimerkkilista2[2]) # Tulostaa valitun olion, tässä tapauksessa luvun 10.

Listan alkioiden tulostaminen eri riveille tapahtuu käskyllä for suraavasti:

for i in esimerkkilista1:

  print(i) # oltava sisennettynä

Tehtävä 1.

Muodosta kolme erillistä listaa: numerolista, poikalista ja tyttölista. Tulosta tämän jälkeen listat sekä jokaiselta listalta kolmas alkio.

n = [] # Anna listalle viisi numeroarvoa

t = [] # Anna listalle viisi pojan nimeä

p = [] # Anna listalle viisi tytön nimeä

Esimerkkikoodi

Älä pyyhi koodia. Tehtävässä 2 jatketaan samaa koodia.

Listan muokkaaminen

Järjestäminen

sort() # järjestää listan alkiot numero- tai aakkos järjestykseen pienimmästä suurimpaan.

Huom! Jotta ohjelma tietää mikä lista järjestetään on listan nimi laitettava käskyn eteen.

esimerkkilista2.sort() # Järjestää esimerkkilistan2 arvot uudelleen.

Tehtävä 2.

Järjestä tehtävän 1 listat ja tulosta ne.

Esimerkkikoodi

Älä pyyhi koodia. Tehtävässä 3 jatketaan samaa koodia.

Kääntäminen

Alkioiden kääntäminen käänteiseen järjestykseen saadaan käskyllä reverse().

esimerkkilista1.reverse() # Järjestää listan alkiot uudelleen käänteiseen järjestykseen.

Alkion lisääminen ja poistaminen

Listan viimeiseksi alkioksi uusi asia lisätään käskyllä:

append() # sulkeisiin tulee lisättävän alkion “asia”.

esimerkkilista2.append(“koira”) # Lisää esimerkkilistaan 2viimeiseksi alkioksi sanan koira.

Alkion poistaminen listasta tapahtuu käskyllä:

remove() # sulkeisiin tulee poistettava alkion “asia”

esimerkkilista2.remove(“koira”) # Poistaa esimerkkilistasta2 alkion koira.

Tehtävä 3.

Käännä numerolista menemään suurimmasta pienimpään ja lisää poikalistaan toinen mini, joka esiintyy jo listassa sekä poista tyttölistasta yksi henkilö.

Esimerkkikoodi 

Älä pyyhi koodia. Tehtävässä 4 jatketaan samaa koodia.

Suurimman ja pienimmän alkion etsiminen

Käsky max() etsii listasta suurimman alkion ja min() pienimmän.

print(max(esimerkkilista2)) # Tulostaa esimerkkilistan2 suurimman luvun.  Huom! kaikkien alkioiden pitää tällöin olla lukuja.

d = max(esimerkkilista2) # Tallentaa muuttujalle d esimerkkilistan 2 suurimman arvon.

print(min(esimerkkilista2)) # Tulostaa esimerkkilistan2 suurimman luvun.  Huom! kaikkien alkioiden pitää tällöin olla lukuja.

e = min(esimerkkilista2) # Tallentaa muuttujalle e esimerkkilistan 2 pienimmän arvon.

Tehtävä 4.

Tallenna numerolistasta suurin arvo muuttujaksi maxn ja pienin arvo minn. Tulosta kyseiset arvot.

Esimerkkikoodi

Älä pyyhi koodia. Tehtävässä 5 jatketaan samaa koodia.

Alkion järjestysluvun etsiminen

Käsky index() etsii suluissa olevan alkion järjestysluvun listassa. Tällöin suluissa kirjoitettu alkio on löydyttävä listasta.
 
print(esimerkkilista2.index(7)) #  Etsii esimerkkilistasta2 alkion jonka arvo on 7 ja tulostaa sen järjestysluvun.
 
c=esimerkkilista2.index(7) # Tallentaa muuttujalle c esimerkkilistassa 2 olevan arvon 7 järjestysluvun.

Alkion esiintymiskertojen laskeminen

 
Käsky count() etsii suluissa olevan alkion ja laskee kuinka monta kertaa se esiintyy listassa. Tällöin suluissa kirjoitettu alkio on löydyttävä listasta.
 
print(esimerkkilista2.count(7)) # Etsii esimerkkilistasta2 alkion 7 ja laskee kuinka monta kertaa se esiintyy listassa. 
 
Tehtävä 5
 
Laske ja tallenna määrä muuttujille kuusi, matti ja ulla, kuinka monta kertaa numerolistassa löytyy numero 6, poikalistassa nimi Matti ja tyttölistassa Ulla. Tulosta määrät.
 

Esimerkkikoodi

Älä pyyhi koodia. Tehtävässä 6 jatketaan samaa koodia.

Listan alkioiden määrän laskeminen

Käsky len() laskee kuinka monta alkiota listassa on.

len(esimerkkilista1) # Laskee alkioiden määrän esimerkkilistassa 1.

b = len(esimerkkilista1) # Tallentaa muuttujaksi b esimerkkilistassa olevien alkioiden lukumäärän. 

print(len(esimerkkilista1)) # Tulostaa esimerkkilistan 1 alkioiden lukumäärän.

Listan alkioiden summa

Käskyllä sum() voidaan laskea listan alkioiden summa.

sum(esimerkkilista2) # laskee esimerkkilistan 2 arvot yhteen. 

a = sum(esimerkkilista2) # tallentaa muuttujaksi a esimerkkilistan 2 yhteenlasketun arvon.

print(sum(esimerkkilista2)) # Tulostaa esimerkkilistan 2 arvojen summan.

Tehtävä 6

Laske ja tulosta tyttöjen ja poikien määrä sekä tulosta numerolistan numeroiden yhteenlaskettu summa.

Esimerkkikoodi

Älä pyyhi koodia. Tehtävässä 6 jatketaan samaa koodia.

Tehtävä 7

  • Määritä edellisen tehtävän kaikki rivit kommentoinneiksi pistämällä risuaita # koodin eteen.
  • Tee uusi lista koenumerot, johon ei laiteta aluksi yhtään alkiota.
  • Ohjelmoi ohjelma kysymään käyttäjältä, lisätäänkö uusi koe k/e.
  • Jos käyttäjä vastaa k, niin ohjelma kysyy numeron ja lisää sen listaan. Jatka kysymistä, kunnes käyttäjä vastaa ei (while-käsky).
  • Jos käyttäjä vastaa e, niin ohjelma tulostaa listan (if, elif, else-käskyt). 
  • Jos käyttäjä vastaa muuta kuin e tai k tulostaa tekstin “jokin meni väärin” (if, elif, else-käskyt).

Esimerkkikoodi

Esimerkkikoodi (turhan monivaiheinen)

Python-ohjeita matematiikkaan.