Sprehod po indeksih tabele

Pri sprehodu po tabeli včasih poleg trenutnega elementa potrebujemo tudi njegov indeks. V tem primeru lahko uporabimo to zanko:

for indeks in range(len(tabela)):
  # indeks je indeks trenutnega elementa tabele
  # tabela[indeks] je trenutni element tabele

Spremenljivka indeks prepotuje vse veljavne indekse tabele, od 0 do len(tabela) - 1. Do trenutnega elementa tabele dostopamo z izrazom tabela[indeks].

Vrnimo se k naši Lizi. V katerih mesecih je Liza prodala več kot 300 kilogramov sladkarij? Da bo naloga enostavnejša, bomo najprej izpisali indekse mesecev (njihove zaporedne številke, zmanjšane za ena). Januar ima torej indeks 0, februar 1 itd. Indeksi mesecev ustrezajo indeksom v tabeli, saj element na indeksu 0 predstavlja prodajo v januarju, element na indeksu 1 prodajo v februarju itd. Zato lahko naš problem rešimo tako, da se sprehodimo po indeksih tabele in vsakokrat pogledamo element na trenutnem indeksu. Če je večji od 300, potem vemo, da je Liza v mesecu s tem indeksom prodala več kot 300 kg sladkarij, zato indeks izpišemo.

Izvedi Počisti



Zgornji program izpiše števila 3, 4, 8, 10 in 11, ki predstavljajo mesece april, maj, september, november in december.

Vaja

Kako bi določili indeks meseca, v katerem je bila prodaja najnižja? Podobno kot pri računanju najmanjše vrednosti v tabeli si tudi tokrat pomagamo z dodatno spremenljivko, le da ta vsebuje indeks najmanjšega elementa izmed vseh tistih elementov, po katerih smo se že sprehodili. Sicer pa je postopek reševanja zelo podoben. Recimo, da indeks doslej najmanjšega elementa hranimo v spremenljivki indeksMin. Če je element na trenutnem indeksu manjši od elementa na indeksu indeksMin, potem spremenljivki indeksMin priredimo trenutni indeks. Tako dosežemo, da bo spremenljivka indeksMin po vsakem koraku zanke vsebovala indeks doslej najmanjšega elementa, po koncu zanke pa indeks najmanjšega elementa celotne tabele.

Izvedi Počisti



Najmanjši element tabele ima indeks 7, kar pomeni, da je Liza najmanj sladkarij prodala v avgustu.