Einführung
In Python können wir die map()-Funktion verwenden, um eine Funktion auf jedes Element einer Liste anzuwenden und eine neue Liste mit den modifizierten Elementen zurückzugeben. Wir können auch die sum()-Funktion verwenden, um alle Elemente einer Liste aufzuzählen. In dieser Herausforderung werden wir diese beiden Funktionen kombinieren, um den Mittelwert einer Liste zu berechnen, nachdem jedes Element mithilfe einer bereitgestellten Funktion auf einen Wert abgebildet wurde.
Mittelwert einer abgebildeten Liste
Schreiben Sie eine Funktion namens average_by(lst, fn = lambda x: x), die eine Liste lst und eine Funktion fn als Argumente nimmt. Die Funktion fn sollte verwendet werden, um jedes Element der Liste auf einen Wert abzubilden. Die Funktion sollte dann den Mittelwert der abgebildeten Werte berechnen und zurückgeben.
Wenn das Argument fn nicht angegeben wird, sollte die Funktion die Standardidentitätsfunktion verwenden, die einfach das Element selbst zurückgibt.
Ihre Funktion sollte die folgenden Anforderungen erfüllen:
- Verwenden Sie
map(), um jedes Element auf den vonfnzurückgegebenen Wert abzubilden. - Verwenden Sie
sum(), um alle abgebildeten Werte zu summieren, dividieren Sie durchlen(lst). - Lassen Sie das letzte Argument,
fn, weg, um die Standardidentitätsfunktion zu verwenden.
Funktionssignatur: def average_by(lst, fn = lambda x: x) -> float:
def average_by(lst, fn = lambda x: x):
return sum(map(fn, lst), 0.0) / len(lst)
average_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda x: x['n'])
## 5.0
Zusammenfassung
In dieser Herausforderung haben wir gelernt, wie wir die map()- und sum()-Funktionen verwenden, um den Mittelwert einer Liste zu berechnen, nachdem jedes Element mithilfe einer bereitgestellten Funktion auf einen Wert abgebildet wurde. Wir haben auch gelernt, wie man Standardargumente in Python-Funktionen verwendet.