Comment supprimer des éléments de dictionnaire si leurs clés ne sont pas dans une liste, en utilisant Python

striatum

Comment supprimer un plus grand nombre d'éléments de dictionnaire qui ne sont pas dans une liste? Par exemple, il y a un dictionnaire dctet une liste `lst:

dct = {'a' : 2, 'b' : 4, 'c' : 6, 'd' : 7}
lst = ['a', 'c']

Quel serait le moyen le plus efficace de filtrer le dictionnaire afin qu'il aboutisse:

dct.items()

Production:

dict_items([('a', 2), ('c', 6)])

Merci!

Larry Drôle

Est-il obligatoire de faire muter le dictionnaire existant ou de produire un nouveau dictionnaire plus petit est-il acceptable?

Si vous pouvez produire un nouveau dictionnaire, la formulation de votre question pourrait vous diriger vers la fonction de filtrage de Python, que vous implémenteriez dans le sens de (en supposant que key_listla liste des valeurs clés que vous souhaitez conserver):

 new_dict = filter(lambda pair: pair[0] in key_list, old_dict)

Vous pouvez également le faire avec une compréhension de dictionnaire, comme:

 new_dict = { key : value for (key, value) in old_dict if key in key_list }

Si vous devez absolument muter le dictionnaire original, il existe des moyens de le faire en une seule ligne en Python, mais ils ne seraient pas tout à fait clairs pour un programmeur Python, donc je le ferais probablement en boucle:

for key in old_dict:
     if key not in key_list:
          del old_dict[key]

Cela fonctionne en Python 2 mais pas en Python 3 où la suppression à l'intérieur de la boucle for interrompra l'itération. Pour Python 3 (je pense), vous devez faire quelque chose comme:

del_keys = [ key for key in old_dict if key not in key_list ]
for key in del_keys:
     del old_dict[key]

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Microsoft.WebApplication.targets

  2. 2

    Exporter la table de l'arborescence vers CSV avec mise en forme

  3. 3

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  4. 4

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  9. 9

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  10. 10

    php ajouter et fusionner des données de deux tables

  11. 11

    Créer un système Buzzer à l'aide de python

  12. 12

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  13. 13

    Comment changer la couleur de la police dans R?

  14. 14

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  15. 15

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    comment afficher un bouton au-dessus d'un autre élément ?

  18. 18

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  19. 19

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  20. 20

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  21. 21

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

chaudétiquette

Archive