Domača naloga bo kratka. Vse funkcije je potrebno napisati v eni vrstici, kot smo se učili na predavanjih.

Obvezni del

  • vsebujejo_crko(crka, besede) prejme črko in seznam (ali pa, morda, množico) besed, vrne pa množico besed, ki vsebujejo podano črko. (Če želiš, lahko prej napišeš drugo funkcijo, ta funkcija pa potem uporabi drugo.)

  • kolikokrat_crka(crka, besede) prejme črko in seznam (ali pa, morda, množico) besed, vrne pa slovar, katerega ključi so besede, vrednosti pa število ponovitev te črke v tej besedi. Klic kolikokrat_crka("a", ["ana", "berta", "cilka"]) vrne {"ana": 2, "berta": 1, "cilka": 1}.

  • vsota7(s) prejme seznam (ali kaj drugega) številk in vrne vsoto vseh številk, ki vsebujejo števko 7. Klic vsota7([5, 17, 2, 7, 71]) vrne 95 (to je, 17 + 7 + 71).

  • ni7(s) prejme seznam (ali kaj drugega) števil in vrne True, če nobeno število ne vsebuje števke 7, in False sicer. (Za reševanje te naloge je pametno, ne pa popolnoma nujno, prebrati zadnji del zapiskov, za katerega na predavanjih ni več bilo časa).

Dodatni del

  • vsota_zaporednih(s) dobi seznam števil in vrne seznam vsot zaporednih parov števil v seznamu. Klic vsota_zaporednih([7, 2, 18, 4, 23]) vrne [9, 20, 22, 27].

  • ni27(s) vrne True, je podobna ni7, vendar pusti posamična števila, ki vsebujejo 7, ne dovoli pa, da bi dve zaporedni števili vsebovali 7. Primer prepovedanega seznama je [1, 17, 72, 5, 1, 2, 700], ker ima zaporedni par 17, 72, ki vsebuje 7.

Rešitev

Rešitve tokrat ne potrebujejo komentarja.

def vsebujejo_crko(crka, besede):
    return {beseda for beseda in besede if crka in beseda}

def kolikokrat_crka(crka, besede):
    return {beseda: beseda.count(crka) for beseda in besede}

def vsota7(s):
    return sum(x for x in s if "7" in str(x))

def ni7(s):
    return all("7" not in str(x) for x in s)


def vsota_zaporednih(s):
    return [x + y for x, y in zip(s, s[1:])]

def ni27(s):
    return not any("7" in str(x) and "7" in str(y) for x, y in zip(s, s[1:]))
마지막 수정됨: 화요일, 17 3월 2026, 8:46 AM