Vaje
Completion requirements
Seznami
- Napiši funkcijo
argmax(s)
, ki prejme seznam in vrne indeks največjega elementa seznama.
Rešitev
def argmax(s):
max_i = None
for i, stevilo in enumerate(s):
if max_i == None or stevilo > s[max_i]:
max_i = i
return max_i
- Ugani, kaj mora narediti funkcija
argmin(s)
:) in jo napiši.
Rešitev
def argmin(s):
min_i = None
for i, stevilo in enumerate(s):
if min_i == None or stevilo < s[min_i]:
min_i = i
return min_i
- Napiši funkcijo
span(s)
, ki prejme seznam števil in vrne razliko med največjim in najmanjšim členom podanega zaporedja.
Rešitev
def span(s):
return max(s) - min(s)
- Napiši funkcijo
sami_sodi(s)
, ki vrneTrue
, če seznam vsebuje sama soda števila inFalse
, če vsebuje tudi kakšno liho. Če je seznam prazen, vrnemoTrue
(saj ne vsebuje nobenega lihega).
Rešitev
def sami_sodi(s):
for stevilo in s:
if stevilo % 2 == 1:
return False
return True
- Napiši funkcijo
sodi_lihi(s)
, ki vrneTrue
, če so elementi na sodih indeksih sodi, na lihih pa lihi.
Rešitev
def sodi_lihi(s):
for i, stevilo in enumerate(s):
if stevilo % 2 != i % 2:
return False
return True
Dražba
- Napiši funkcijo
ponudbe(ime_datoteke, predmet)
, ki prejme ime datoteke (lahko je"zapisnik.txt"
, lahko pa je tudi kaj drugega) in ime predmeta. Vrniti mora seznam vseh ponujenih cen za ta predmet.
Rešitev
def ponudbe(ime_datoteke, predmet):
vse_cene = []
for vrstica in open(ime_datoteke):
trenutni_predmet, _, cena = vrstica.split(",")
if trenutni_predmet == predmet:
vse_cene.append(int(cena))
return vse_cene
- Napiši funkcijo
najboljsa_ponudba(ime_datoteke, predmet)
, ki vrne najvišjo ponujeno ceno za podani predmet.
Rešitev
def najboljsa_ponudba(ime_datoteke, predmet):
return max(ponudbe(ime_datoteke, predmet))
- Napiši funkcijo
stevilo_ponudb(ime_datoteke, predmet)
, ki vrne število ponudb za podani predmet.
Rešitev
def stevilo_ponudb(ime_datoteke, predmet):
return len(ponudbe(ime_datoteke, predmet))
- Napiši funkcijo
visanje(ime_datoteke, predmet)
, ki vrne razliko med najvišjo in najnižjo ponujeno ceno za podani predmet.
Rešitev
def visanje(ime_datoteke, predmet):
vse_cene = ponudbe(ime_datoteke, predmet)
return vse_cene[-1] - vse_cene[0]
- Napiši funkcijo
ponudniki(ime_datoteke)
, ki vrne slovar, katerega ključi so imena oseb, ki so sodelovale na dražbi, pripadajoče vrednosti pa število ponudb, ki jih je dala ta oseba.
Rešitev
def ponudniki(ime_datoteke):
osebe_ponudbe = defaultdict(int)
for vrstica in open(ime_datoteke):
predmet, oseba, cena = vrstica.split(",")
osebe_ponudbe[oseba] += 1
return osebe_ponudbe
Last modified: Wednesday, 6 November 2024, 3:56 PM