Seite 1 von 1
"count" in verschachtelten Listen?
Verfasst: Mittwoch 9. März 2011, 21:31
von pyrosch
Hallo,
ich finde keine einfache Lösung, um die Anzahl von Elementen in verschachtelten Listen zu finden.
Bsp:
Wie oft kommen die Elemente 100 und 101 vor?
Vielen Dank im Vorraus für eure Antworten.
lg.
Re: "count" in verschachtelten Listen?
Verfasst: Mittwoch 9. März 2011, 21:42
von deets
Na, denk doch mal nach. Wie machst du es denn fuer nicht-verschachtelte Listen? Und was muss du machen, wenn du mehrere Listen hast? Dann bist du doch schon da...
Re: "count" in verschachtelten Listen?
Verfasst: Mittwoch 9. März 2011, 21:59
von snafu
Du könntest den "sum()-Trick" anwenden:
Ich weiß aber nicht, ob dieses Verhalten von sum() garantiert ist. Auf der sicheren Seite wäre man vermutlich mit itertools.chain.from_iterable(), wobei man da noch explizit in eine Liste umwandlen müsste, um count() nutzen zu können.
Re: "count" in verschachtelten Listen?
Verfasst: Mittwoch 9. März 2011, 22:11
von pyrosch
@snafu, danke schon mal für die Idee!
snafu hat geschrieben:...ob dieses Verhalten von sum() garantiert ist
Wie meinst Du das? Was könnte passieren, wenn man es so macht?
Re: "count" in verschachtelten Listen?
Verfasst: Mittwoch 9. März 2011, 22:23
von lunar
@pyrosch: "sum()" konkateniert die Unterlisten mithilfe des "+"-Operators. Dieses Verhalten ist schon garantiert, nur ist die Lösung trotzdem nicht gut. Es wird eben aufgrund der Konkatenation für jede Unterliste eine neue Kopie erzeugt, so dass die Lösung folglich quadratische Komplexität hat.
Halte Dich also besser an den Rat von deets.
Re: "count" in verschachtelten Listen?
Verfasst: Mittwoch 9. März 2011, 22:45
von snafu
Naja, was ich jetzt meinte war, dass sum() sich ja auch beschwert, wenn man auf diesem Weg Strings "zusammenzählen" will. Es könnte ja sein, dass in irgendeinem entfernten Python dies auch bei anderen Typen verboten wird. So oder so ist, wie schon gesagt wurde, sum() im Prinzip nicht für sowas gedacht.
Re: "count" in verschachtelten Listen?
Verfasst: Mittwoch 9. März 2011, 23:00
von bords0