AW: [Spam 42,42%] [Python-de] Listenvergleich

Hallo ashraf
Mir ist nicht ganz klar, was Du meinst: Wenn es darum geht, ob die Liste als Element in einer anderen Liste enthalten ist, dann geht das mit dem >in< operator. Wenn du dagegen wissen willst, ob alle Elemente einer Liste auch in einer anderen Liste enthalten sind, dann musst Du selbst etwas schreiben. Z. B. so:
def contains (ls1, ls2): for e in ls2: if e not in ls1: return False return True
Cao
Rainer
Rainer Fischbach
Senior Consultant ECS Engineering Consulting & Solutions GmbH Mühlstraße 3 D-92318 Neumarkt
Fon +49 9181 4764-84 Fax +49 9181 4764-50 email fischbach@ecs-gmbh.de http://www.ecs-international.de/
-----Ursprüngliche Nachricht----- Von: python-de-bounces@python.net [mailto:python-de-bounces@python.net] Im Auftrag von Ashraf Emawi Gesendet: Donnerstag, 27. Januar 2005 16:22 An: python-de@python.net Betreff: [Spam 42,42%] [Python-de] Listenvergleich
Hallo zusammen, ich habe eine kleine frage, und zwar, ich suche nach einer python-funktion, die feststellen kann, ob eine Liste in eine andere enthalten ist. also wie die funktion "in", die untersucht, ob ein element in einer Liste enthalten ist, aber nun eine Liste hat statt des Elements. Falls jemand mir helfen koennte, waere ich sehr dankbar, da meine listen viele tausende datensaetze enthalten, und die einzeln zu vergleichen ist richtig muehsam. gruss ashraf
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

def contains (ls1, ls2): for e in ls2: if e not in ls1: return False return True
Das ist die denkbar schlechteste Loesung von der Performance her - denn die ist ueblicherweise irgendwas mit O(n * m) mit
n, m = len(ls1) , len(ls2)
Die Loesung mit sets ist O(mm * log(mm)) mit
mm = max([m,n])
Ab python 2.4 ist sets ausserdem in C geschrieben, und falls er solche Vergleiche oefter hat, ist natuerlich der Aufwand fuer die Erzeugung des sets nur einmal zu berechnen, womit sich die Performance auf O(mm) verbessert.
Das mag alles nach Korinthenkackerei aussehen - aber quadratische Algorithmen fallen einem schneller auf die Fuesse als es einem lieb sein kann.
MfG Diez
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (2)
-
Diez B. Roggisch
-
Rainer Fischbach