Eine Liste von Wörterbüchern in mehrere Listen von Wörterbüchern aufteilen

9

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%     
thenickname 03.11.2010, 21:06
quelle

4 Antworten

11

verwende defaultdict

%Vor%

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.

    
aaronasterling 03.11.2010, 21:12
quelle
2

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%     
John La Rooy 03.11.2010 22:23
quelle
1
%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).

    
Terrel Shumway 03.11.2010 21:21
quelle
1

Ich denke, was Sie wirklich wollen, ist sie zu filtern:

%Vor%

Diese Lösung wird keine zusätzlichen Strukturen erstellen. (Denken Sie im Falle einer großen Ereignisliste)

Eine weitere sehr schöne Lösung ist groupby:

%Vor%     
fabrizioM 03.11.2010 22:05
quelle

Tags und Links