Python: comment découper un dictionnaire basé sur les valeurs de ses clés?

Dire que j'ai un dictionnaire construit comme ceci:

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}

et je veux créer un subdictionary d1 par tranchage de d de telle manière que d1 contient les touches suivantes: 0, 1, 2, 100, 101, 102. Le résultat final devrait être:

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

Est-il efficace Pythonic façon de le faire, étant donné que ma véritable dictionnaire contient plus de 2 000 000 d'articles?

Je pense que cette question s'applique à tous les cas où les clés sont des entiers, lorsque le découpage doit suivre certaines l'inégalité des règles, et quand le résultat final doit être un tas de tranches de rassembler dans le même dictionnaire.

Où ces règles viennent de? Ce qui devrait se produire si ces clés n'ont pas de valeurs? Avez-vous considéré comme un dictionnaire de compréhension {k: d[k] for k in [0, 1, ...]}?
Dans mon cas, toutes les touches ont des valeurs.
Vous ne pouvez pas vraiment "tranche" d'un dictionnaire, puisque c'est une mutable cartographie et pas une séquence. Je pense que dict compréhension est votre meilleur pari.
Le découpage d'un dictionnaire n'est pas intrinsèquement impossible; Python n'a pas de syntaxe pour le faire, comme, par exemple, Perl n' (bien qu'en Perl, vous venez de récupérer les valeurs correspondantes, pas un sous-ensemble de la table de hachage).

OriginalL'auteur FaCoffee | 2016-11-05