Python: how to slice ein Wörterbuch auf der Grundlage der Werte der Schlüssel?

Sagen, ich habe ein Wörterbuch aufgebaut wie diese:

d={0:1, 1:2, 2:3, 10:4, 11:5, 12:6, 100:7, 101:8, 102:9, 200:10, 201:11, 202:12}

und ich möchte eine subdictionary d1 durch aufschneiden d in der Weise, dass d1 enthält die folgenden Schlüssel: 0, 1, 2, 100, 101, 102. Die endgültige Ausgabe sollte sein:

d1={0:1, 1:2, 2:3, 100:7, 101:8, 102:9}

Gibt es eine effiziente Pythonic Weg, dies zu tun, da mein real-Wörterbuch enthält über 2.000.000 Gegenstände?

Ich denke, diese Frage gilt für alle Fälle, wo die Schlüssel sind ganze zahlen, wenn das aufschneiden muss Sie bestimmte Ungleichheit Regeln, und wenn das endgültige Ergebnis muss eine Reihe von Scheiben, die zusammen in der gleichen Wörterbuch.

Wo diese Regeln herkommen? Was soll passieren, wenn diese keys haben keine Werte? Haben Sie sich überlegt ein Wörterbuch Verständnis {k: d[k] for k in [0, 1, ...]}?
In meinem Fall sind alle Tasten Werte.
Sie können nicht wirklich "slice" ein Wörterbuch, da es eine veränderliche Zuordnung und nicht eine Folge. Ich denke, dass dict-comprehension ist Ihre beste Wette.
Schneiden Sie ein Wörterbuch ist nicht grundsätzlich unmöglich; Python einfach nicht bieten, syntax, es auch zu tun wie, sagen wir, Perl tut (obwohl in Perl, Sie haben gerade wieder die entsprechenden Werte, nicht eine Teilmenge der hash).

InformationsquelleAutor FaCoffee | 2016-11-05

Schreibe einen Kommentar