Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizi di python su matrice e messaggi, Prove d'esame di Fondamenti di informatica

Esercizi di python su matrice e messaggi

Tipologia: Prove d'esame

2019/2020

Caricato il 18/04/2022

taytmaters
taytmaters 🇮🇹

18 documenti

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Marco-Roberta:11-07-2017
-Marco:Ciao
-Roberta:Come stai?
-Roberta:A dopo!
Matteo-Marco:12-07-2017
-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:
pf3
pf4

Anteprima parziale del testo

Scarica Esercizi di python su matrice e messaggi e più Prove d'esame in PDF di Fondamenti di informatica solo su Docsity!

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')