Ich habe eine Liste von Wörterbüchern, wie:Entfernen von Schlüsselwerten Paare aus einer Liste von Wörter
[{'mykey1':'myvalue1', 'mykey2':'myvalue2'}, {'mykey1':'myvalue1a', 'mykey2':'myvalue2a'}]
Ich brauche alle Schlüsselwerte Paare von allen Wörter zu entfernen, wo der Schlüssel zu mykey1 gleich ist. Ich könnte dies tun, indem ich die Del-Anweisung durchlaufe und benutze, aber ich frage mich, wie ich eine neue Liste mit Listen-Comprehensions oder Lambdas erstellen würde, die einfach alle Schlüssel-Wert-Paare entfernen würden, wo der Schlüssel mykey1 war.
Vielen Dank
und ersetze die dict comp mit 'dict ((k, v) für k, v in d.iteritems(), wenn k! = 'Mykey1')', wenn Sie auf python2. 6 oder älter. – mgilson
@mgilson Wenn meine Bedingung ist, dass k in einem bestimmten Tupel sein soll, ist es in Ordnung zu tun: {dict ((k, v) für k, v in d.iteritems() wenn k in mytuple)} yeah? Denn wenn ich das tue, bekomme ich: nicht hashbar Typ: 'dict' – dublintech
@dublintech: Sie verwenden die falsche Syntax; Es sind eckige Klammern um die ganze, nicht geschweifte Klammern: '[dict ((k, v) für k, v in d.iteritems() wenn k in mytuple) für d in mistel]'. Der Ausdruck "k in mytuple" ist in Ordnung. –