Konstruktion eines neuen Diktats:
dict_you_want = { your_key: old_dict[your_key] for your_key in your_keys }
Verwendet das Wörterbuchverständnis.
Wenn Sie eine Version verwenden, in der diese fehlen (z.B. Python 2.6 und früher), machen Sie es dict((your_key, old_dict[your_key]) for ...)
. Es ist dasselbe, nur hässlicher.
Beachten Sie, dass diese Version im Gegensatz zur Version von jnnnnn eine stabile Leistung (hängt nur von der Anzahl der your_keys ab) für old_dict
s in jeder Größe. Sowohl in Bezug auf die Geschwindigkeit als auch auf den Speicher. Da es sich um einen Generatorausdruck handelt, wird jeweils nur ein Element verarbeitet, und es werden nicht alle Elemente von old_dict durchsucht.
Entfernen Sie alles an Ort und Stelle:
unwanted = set(keys) - set(your_dict)
for unwanted_key in unwanted: del your_dict[unwanted_key]
0 Stimmen
Es ist hilfreich zu sagen, welche Art von Schlüsseln (Ganzzahlen? Zeichenketten? Daten? beliebige Objekte?) und somit, ob es eine einfache (String, Regex, Liste Mitgliedschaft oder numerische Ungleichheit) Test zu überprüfen, welche Schlüssel sind in oder out. Oder müssen wir eine beliebige Funktion(en) aufrufen, um das festzustellen.
1 Stimmen
@smci String-Schlüssel. Ich glaube nicht, dass es mir überhaupt in den Sinn gekommen ist, etwas anderes zu verwenden; ich habe so lange in JS und PHP programmiert...