2015-03-13 21 views
5

Ho elenchi di dizionari. Diciamo cheOttieni il valore medio dall'elenco del dizionario

total = [{"date": "2014-03-01", "value": 200}, {"date": "2014-03-02", "value": 100}{"date": "2014-03-03", "value": 400}] 

Ho bisogno di ottenere il massimo, minimo, valore medio da esso. Posso ottenere i valori massimi e minimo con codice qui sotto:

print min(d['value'] for d in total) 
print max(d['value'] for d in total) 

Ma ora ho bisogno di ottenere il valore medio da esso. Come farlo?

risposta

13

basta dividere la somma dei valori per la lunghezza della lista:

print sum(d['value'] for d in total)/len(total) 

nota che la divisione di interi restituisce il valore intero. Ciò significa che la media di [5, 5, 0, 0] sarà 2 anziché 2.5. Se avete bisogno di risultato più preciso quindi è possibile utilizzare il valore float(): anwser

print float(sum(d['value'] for d in total))/len(total) 
+0

ho aggiunto la nota sui risultati galleggiante. – catavaran

2
reduce(lambda x, y: x + y, [d['value'] for d in total])/len(total) 

di catavaran è più facile, non hai bisogno di un lambda

Problemi correlati