Ich habe schon eine Weile vergeblich damit Schluss gemacht ... Jede Hilfe wäre sehr hilfreich geschätzt.
Ich habe:
%Vor%und ich möchte diese Liste von Wörterbüchern pro Ereignis aufteilen (es kann beliebig viele Ereignisse geben):
%Vor% verwende defaultdict
Auf diese Weise müssen Sie keine Annahmen darüber machen, wie viele verschiedene Ereignisse es gibt oder ob Ereignisse fehlen.
Dies gibt Ihnen eine Liste von Listen. Wenn Sie ein dict
nach Ereignis indizieren möchten, würde ich wahrscheinlich dict(d)
verwenden, wenn Sie einen zufälligen Zugriff planen.
Was das Erstellen einer Menge einzelner Listen betrifft, halte ich das für eine schlechte Idee. Es wird notwendig sein, sie als globals zu erstellen oder eval
zu verwenden (oder Hacky auf andere Weise zu bekommen), es sei denn, du weißt genau, wie viele es sein werden, von denen du nicht behaupten willst. Es ist am besten, sie einfach in einem Behälter aufzubewahren.
Dieser ist O(n log n)
wegen der Sortierung, aber ich würde mir keine allzu großen Sorgen machen, es sei denn, es gibt eine Menge von Elementen in der Liste.
Es ist die Liste bereits nach Ereignis sortiert, Sie können die Art des Kurses überspringen.
%Vor%Wenn Sie wissen, dass Ihre "Ereignis" -Tasten aufeinanderfolgende null-basierte Ganzzahlen sind, können Sie stattdessen eine Liste verwenden, aber die zusätzliche Komplexität kann Ihnen nichts bringen.
defaultdict wurde in Python 2.5 hinzugefügt, aber die Problemumgehung für frühere Versionen ist nicht schwer (siehe Nick Ds Code).
Tags und Links python split list dictionary