Dennis Heidsiek wrote: >> A = [i for i in worte if not i.lower() == i] >> B = [i for i in worte if not i in A] >> >> Wer sieht den Fehler, der aus einem einfachen O(N) Code einen teuren >> O(N²) Code macht? :) > > Hm, also dynamische Sprachen sind ja generell nicht so meine Welt, aber > wenn wenn Du von O(N²) sprichst: Kann es vielleicht sein, dass A nicht > zwischengespeichert, sondern bei jedem Aufruf in der B-Schleife neu > berechnet wird?
Nicht ganz aber nah dran. A ist eine Liste, und B prüft für jedes Element in worte, ob irgendeins der Elemente in A gleich ist. Es schaut also für jedes Element in Worte jedes Element in A an, hat also len(worte)*len(A) Variablenvergleiche. Und das tut einfach wirklich weh :) LG, Arne