Gegeben ist eine ineffiziente Python-Funktion, die für eine Liste von Wörtern die Häufigkeit jedes Wortes zählt und dabei für jedes Wort erneut die gesamte Liste durchläuft: ```python def count_words(words): counts = {} for w in words: counts[w] = 0 for x in words: if x == w: counts[w] += 1 return counts ``` Schreibe eine effiziente Variante, erkläre die Verbesserung der Zeitkomplexität und zeige mit einem kleinen Benchmark (z. B. `timeit`) den Unterschied bei größeren Eingaben. Behandle dabei sinnvolle Randfälle: leere Liste, Groß-/Kleinschreibung und anhängende Satzzeichen (was soll als „dasselbe Wort" gelten?). Triff dazu eine begründete Annahme.