Εύρεση του μέσου όρου μιας λίστας

Πρέπει να βρω το μέσο όρο μιας λίστας στην Python. Αυτός είναι ο κώδικάς μου μέχρι στιγμής

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
print reduce(lambda x, y: x + y, l)

I've got it so it adds together the values in the list, but I don't know how to make it divide into them?

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
sum(l) / len(l)
Σχόλια (8)
Λύση

Στην Python 3.4+ μπορείτε να χρησιμοποιήσετε statistics.mean()

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]

import statistics
statistics.mean(l)  # 20.11111111111111

Σε παλαιότερες εκδόσεις της Python μπορείτε να κάνετε

sum(l) / len(l)

Στην Python 2 πρέπει να μετατρέψετε το len σε float για να πάρετε διαίρεση float

sum(l) / float(len(l))

Δεν χρειάζεται να χρησιμοποιήσετε το reduce. Είναι πολύ πιο αργή και αφαιρέθηκε στην Python 3.

Σχόλια (11)

Γιατί να χρησιμοποιήσετε τη συνάρτηση reduce() γι' αυτό, όταν η Python έχει μια τέλεια συνάρτηση sum();

print sum(l) / float(len(l))

float() είναι απαραίτητη για να αναγκάσει την Python να κάνει διαίρεση κινητής υποδιαστολής).

Σχόλια (2)