» »

[Python] Help

[Python] Help

Stewie ::

Živjo!

Torej kot že v naslovu omenjeno rabim pomoč pri Pythonu. Prvo nalogo mi je uspelo spacat skupaj glede na to da so bolj kot ne osnove ampak pri 2 se pa ustavi (ne znam se je lotit)

Zaradi preprostosti je vsak par naveden le enkrat po abecednem vrstnem redu -> ("Ana", "Berta") in ne tudi ("Berta", "Ana")
 
pari = {("Ana", "Berta"), ("Ana", "Greta"), ("Ana", "Helga"),
        ("Berta", "Cilka"), ("Berta", "Helga"),
        ("Cilka", "Dani"),
        ("Dani", "Ema"), ("Dani", "Greta"), ("Dani", "Helga"),
        ("Ema", "Fanči"), ("Ema", "Greta"), ("Ema", "Helga"),
        ("Fanči", "Iva"), ("Fanči", "Jana"), ("Fanči", "Klavdija"),
        ("Greta", "Helga")}


Druga predstavitev je s slovarjem, katerega ključi so imena, pripadajoče vrednosti pa množice znancev.
 
mreza = {"Ana": {"Berta", "Greta", "Helga"},
         "Berta": {"Ana", "Helga", "Cilka"},
         "Cilka": {"Berta", "Dani"},
         "Dani": {"Cilka", "Ema", "Greta", "Helga"},
         "Ema": {"Dani", "Fanči", "Greta", "Helga"},
         "Fanči": {"Ema", "Iva", "Jana", "Klavdija"},
         "Greta": {"Ana", "Dani", "Ema", "Helga"},
         "Helga": {"Ana", "Berta", "Dani", "Ema", "Greta"},
         "Iva": {"Fanči"},
         "Jana": {"Fanči"},
         "Klavdija": {"Fanči"}
         }


Naloga
po_znancih(mreza) vrne slovar, katerega ključi so števila od 1 do len(mreza) - 1, pripadajoče vrednosti pa množice oseb, ki imajo toliko znancev. Za malo mrežo mora funkcija vrniti {1: {"D"}, 2: {"A", "B"}, 3: {"C"}}.

priporocila(mreza) vrne množico parov, ki se med seboj ne poznajo, vendar imajo vsaj enega skupnega znanca. Par naj bo urejen po abecedi (prvi element naj bo po abecedi pred drugim).

klika(mreza, imena) vrne True, če se vse osebe iz podane množice imen poznajo med seboj.

najvec_skupnih(mreza) naj vrne imeni oseb, ki imata največ skupnih znancev. (Vrne naj terko, pri element naj bo po abecedi pred drugim.)

Hvala za kakršnokoli pomoč
  • spremenilo: Stewie ()

d_DJ ::

če ti še ni uspelo rešiti druge:
def priporocila(mreza):
    resitev = []
    temp_sez = sorted((list(mreza.keys())))
    for i in range (len(temp_sez)-1):
        for j in range (i+1,len(temp_sez)):
            if temp_sez[j] not in mreza.get(temp_sez[i]):
                if len (mreza.get(temp_sez[i]).intersection(mreza.get(temp_sez[j]))) > 0:
                    resitev.append (tuple((temp_sez[i],temp_sez[j])))               
    return resitev


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

python-rabim pomoč

Oddelek: Programiranje
162659 (889) rnla1973
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317173 (7921) black ice
»

Naloga iz Putka - UPM

Oddelek: Programiranje
242057 (1393) NejcSSD
»

urejanje - python

Oddelek: Programiranje
51279 (1056) ktka
»

[java] funkcija ekvivalentna print_r v PHP

Oddelek: Programiranje
161586 (1349) sverde21

Več podobnih tem