Entfernen von Diktateinträgen ohne Werte - Python

7

Wenn ich ein Wörterbuch habe und die Einträge entfernen möchte, in denen der Wert eine leere Liste ist [] Wie würde ich das machen?

Ich habe es versucht:

%Vor%

aber das hat nicht funktioniert.

    
marsx 10.06.2011, 14:00
quelle

8 Antworten

12

.keys() bietet Zugriff auf die Liste der Schlüssel im Wörterbuch, aber Änderungen daran werden nicht (unbedingt) im Wörterbuch wiedergegeben. Sie müssen del dictionary[key] oder dictionary.pop(key) verwenden, um es zu entfernen.

Wegen des Verhaltens in einer Version von Python müssen Sie eine Kopie der Liste Ihrer Schlüssel erstellen, damit die Dinge richtig funktionieren. Ihr Code würde also funktionieren, wenn er wie folgt geschrieben wird:

%Vor%     
Jeremy Banks 10.06.2011, 14:05
quelle
10

Neuere Versionen von Python unterstützen dict comprehensions:

%Vor%

Diese sind viel besser lesbar als Filter oder for-Schleifen

    
JBernardo 10.06.2011 14:25
quelle
3
%Vor%     
Ravi 10.06.2011 14:05
quelle
2

Warum nicht einfach diejenigen behalten, die nicht leer sind und den GC übrig lassen, Reste zu löschen? Ich meine:

%Vor%     
KrzysztofCiba 03.12.2012 21:08
quelle
1
%Vor%     
MattH 10.06.2011 14:02
quelle
1

Reinigen Sie einen, aber es wird eine Kopie dieses Diktats erstellt:

%Vor%     
Roman Bodnarchuk 10.06.2011 14:05
quelle
1

Mit Generatorobjekt statt Liste:

%Vor%     
Artsiom Rudzenka 10.06.2011 14:40
quelle
0
%Vor%     
azgrammer 21.08.2015 21:45
quelle

Tags und Links