Comment supprimer tous les éléments du dictionnaire dont la clé est un élément d'une liste?Supprimer tous les éléments du dictionnaire dont la clé est un élément d'une liste
Répondre
Je ne connais rien à Python, mais je suppose que vous pouvez parcourir une liste et supprimer les entrées par clé du dictionnaire?
[Note: Ceci n'est pas une réponse directe, mais étant donné la spéculation antérieure que la question ressemble à des devoirs. Je voulais apporter une aide qui aidera à résoudre le problème tout en apprenant de lui]
Décomposer votre problème qui est:
- Comment obtenir un élément d'une liste
- Comment supprimer une clé : valeur dans le dictionnaire
Une aide supplémentaire:
Comment obtenir tous les éléments d'une liste sur python? Pour boucle fonctionne sur toutes les séquences et la liste est une séquence.
for key in sequence: print key
Comment supprimer un élément dans le dictionnaire?
utilisez la méthode del (clé).
Vous devriez être en mesure de combiner les deux tâches.
Vous n'avez pas répondu à la question.Vous l'avez peut-être dirigé dans la bonne direction, mais tout le monde ne veut pas partir à la recherche de connaissances tout en essayant de faire rapidement quelque chose au travail. – Will
@Will: Je comprends. J'étais l'un des premiers à répondre à cette question. Et de la conversation, il semblait que c'était un problème de devoirs. Chez Stackoverflow, nous dissuadons de répondre à la question à moins que certaines tentatives aient été montrées. Je pensais, j'ai fourni une bonne direction qui le tiendra en bonne place plutôt que de fournir une solution de pâte coupée. J'espère que le contexte aidera. – pyfunc
map(dictionary.__delitem__, lst)
Seulement utile si tout de lst est dans le dictionnaire - sinon vous obtiendrez une KeyError quelque part sur le chemin. Essayez: 'map (dictionnaire .__ delitem__, filter (dictionnaire .__ contains__, lst))' (Bien qu'en vérité, je ne suis pas un grand fan de l'utilisation de 'map' ou liste comps comme des remplacements pour les boucles normales.) – PaulMcG
@ Paul: Je crois que gnibbler voulait que la réponse soit plus ou moins correcte mais surtout inappropriée pour les devoirs ... :) – tzot
Oui, j'ai fait la même chose moi-même sur d'autres questions de devoirs. – PaulMcG
for key in list_:
if key in dict_:
del dict_[key]
bien, je ne savais pas que vous pourriez le faire. Je pensais que vous deviez utiliser has_key. Merci! btw, del dict_ [k] devrait probablement être del dict_ [clé], n'est-ce pas? – si28719e
@blackkettle: en Python 3 'key in dict_' est en fait le seul moyen de vérifier si un dict a une clé donnée - la méthode' has_key() 'a été supprimée. –
@blackkettle Yup! Oups – rossipedia
newdict = dict(
(key, value)
for key, value in olddict.iteritems()
if key not in set(list_of_keys)
)
plus tard (comme à la fin de 2012):
keys = set(list_of_keys)
newdict = dict(
(key, value)
for key, value in olddict.iteritems()
if key not in keys
)
Ou si vous utilisez une compréhension dictionnaire python 2.7+:
keys = set(list_of_keys)
newdict = {
key: value
for key, value in olddict.iteritems()
if key not in keys
}
Ou peut-être même un python 2.7 compréhension du dictionnaire, plus une intersection de jeu sur les touches:
required_keys = set(olddict.keys()) - set(list_of_keys)
return {key: olddict[key] for key in required_keys}
Oh oui, le problème aurait pu être que j'avais la condition inversée pour le calcul des clés nécessaires.
Vous devez déplacer 'set (list_of_keys)' en dehors de la boucle –
d = {'one':1, 'two':2, 'three':3, 'four':4}
l = ['zero', 'two', 'four', 'five']
for k in frozenset(l) & frozenset(d):
del d[k]
for i in lst:
if i in d.keys():
del(d[i])
Cela construira une liste ou un itérateur pour 'd.keys()' à chaque étape. Il suffit de faire 'if i in d:' cela sera plus court et plus efficace, et il y a déjà une réponse comme celle-ci. –
- 1. Supprimer tous les éléments de la liste qui sont cochés
- 2. compter tous les éléments dans un dictionnaire
- 3. ajouter un élément au dictionnaire
- 4. La meilleure façon d'utiliser les éléments du dictionnaire que nous utilisons les avantages de la liste
- 5. Trier par clé du dictionnaire dans un dictionnaire en Python
- 6. jquery supprimer tous les éléments enfants et laisser du texte
- 7. Supprimer un élément de la liste
- 8. WPF Liaison à des éléments dans un dictionnaire par clé?
- 9. jQuery: comment masquer tous les éléments HTML dont la valeur est supérieure à une certaine valeur pour un tag donné
- 10. Python: supprimer le dictionnaire de la liste
- 11. PHP, lire un dossier - liste tous les éléments avec des cases à cocher et les supprimer?
- 12. C# supprimer des éléments de la liste
- 13. Trouver élément dont tous les enfants ont une valeur donnée
- 14. javascript: supprimer tous les éléments d'objet d'un tableau associatif
- 15. Comment supprimer tous les éléments d'un NSTableView contrôlé par NSArrayController?
- 16. sélectionner tous les éléments div dans DOM après un élément?
- 17. JQuery obtenir tous les éléments dans une liste
- 18. Supprimer les éléments et le contenu avant un élément
- 19. Python référence dictionnaire élément du dictionnaire voisin
- 20. sharepoint montrant tous les éléments liés à un élément dans une liste
- 21. Comment supprimer un élément de tableau basé sur la clé?
- 22. Android Animation pour tous les éléments d'une liste
- 23. Dictionnaire avec un seul élément
- 24. jQuery - Supprimer les éléments de la liste en fonction du temps
- 25. Comment supprimer un élément d'un tableau PHP si la clé est égale à 'index'?
- 26. Quel est le BIF pour supprimer un élément d'une liste?
- 27. Schéma Comment supprimer les éléments d'une liste?
- 28. Trouver l'index d'un élément du dictionnaire partiel dans une liste
- 29. Comment supprimer l'espace vide du premier élément et du dernier élément de la liste de sélection?
- 30. Supprimer tous les éléments d'un champ de sélection de clé étrangère
Est-ce devoir? Pouvez-vous nous montrer ce que vous avez jusqu'ici? – SingleNegationElimination