


Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Esercizi di python su matrice e messaggi
Tipologia: Prove d'esame
1 / 4
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!



Marco-Roberta:11-07- -Marco:Ciao -Roberta:Come stai? -Roberta:A dopo! Matteo-Marco:12-07- -Marco:Ciao -Matteo:Ciao, oggi è una bella giornata dati = [] with open('file.txt', encoding='utf-8')as f: for l in f: l = l.strip() if len(l) > 0: if not l.startswith('-'): pM = {} #persone mex dati.append({'PERSONE':l.split(':')[0],'DATA': l.split(':')[1],'PERS E MEX': pM}) if l.startswith('-'): p = l.replace('-','').split(':')[0] t = l.replace('-','').split(':')[1] if p not in pM: pM[p] = [t] else: pM[p].append(t) print(dati) #1.Trovare il messaggio che contiene più parole mex = [] for diz in dati: for k,v in diz.items(): if k == 'PERS E MEX': #print(v) for k,v in v.items(): for i in v:
mex.append(i) print(mex) num_parole = [] #lista che contiene come elementi quante parole per messaggio for i in mex: result = len(i.split()) num_parole.append(result) #print(num_parole) a = dict(zip((mex),(num_parole))) print(a) parole_max = sorted(a.items(), key = lambda x:x[1]) print(parole_max) with open('1.txt','w',encoding='utf-8') as f: f.write('Il messaggio che contiene più parole è: \n'+str(parole_max[-1][0])) #2.Trovare la persona che scrive più messaggi pmex = {} #persone numero messaggi for diz in dati: for k,v in diz.items(): if k == 'PERS E MEX': #print(v) for k,v in v.items(): if k not in pmex: pmex[k] = 0 if k in pmex: pmex[k] += len(v) print(pmex) pmax = sorted(pmex.items(), key = lambda x:x[1]) #persone ordinate per numero di mex inviati with open('2.txt','w',encoding='utf-8')as f: f.write('La persona che scrive più messaggi è: '+str(pmax[-1][0])) #3.Per ogni persona stampare il numero di persone con cui comunica
q_mex = [] for k,v in v.items(): q_mex.append(len(v)) q.append(q_mex) #print(q) for lista in q: o = lista[0] + lista[1] somma.append(o) for i in somma: chat[-1]['NUM MEX'] = i print(chat) mex_max = sorted(chat,key = lambda x:x['NUM MEX']) print(mex_max) with open('4.txt','w')as f: f.write(str(mex_max[-1]['PERSONE']+' : '+str(mex_max[-1]['DATA']))) #5.Ordinare le persone da quella che manda più mex a quella che ne manda meno p_ord = sorted(pmex.items(), key = lambda x:x[1], reverse = True) print(p_ord) #persone ordinate da quella che manda più mex a quella che ne manda meno with open('5.txt','w')as f: for t in p_ord: f.write(t[0]+' manda '+str(t[1])+' messaggi') f.write('\n')