2028 votes

Supprimer un élément d’un dictionnaire

Est-il possible de supprimer un élément dans un dictionnaire en Python ?

Je sais que je peux l’appeler `` sur le dictionnaire, mais qui retourne l’élément qui a été supprimé. Ce que je cherche, c’est que quelque chose retourne le dictionnaire moins l’élément en question.

À l’heure actuelle, j’ai une fonction d’assistance qui accepte le dictionnaire en question en tant que paramètre, et puis retourne un dictionnaire avec l’élément supprimé, existe-t-il une solution plus élégante ?

2371voto

Greg Hewgill Points 356191

L' del déclaration supprime un élément:

del d[key]

Toutefois, cette mutation de l'existant dictionnaire de sorte que le contenu du dictionnaire des changements de quelqu'un d'autre qui a une référence à la même instance. De retour d'un nouveau dictionnaire, faire une copie du dictionnaire:

def removekey(d, key):
    r = dict(d)
    del r[key]
    return r

L' dict() constructeur fait une copie superficielle. Pour faire une copie en profondeur, voir l' copy module.

474voto

Crystal Points 191

peut-être que je ne comprends pas votre question, mais pop Mute le dictionnaire...

Si vous souhaitez conserver l’original je suppose que vous pouvez simplement copier il

114voto

utdemir Points 9107

Je pense que votre solution est la meilleure façon de le faire. Mais si vous voulez une autre solution, vous pouvez créer un nouveau dictionnaire avec en utilisant les touches de l’ancien dictionnaire sans inclure votre clé spécifiée, comme ceci :

81voto

arussell84 Points 736

L' instruction del est ce que vous recherchez. Si vous avez un dictionnaire appelé foo avec un clé appelé « bar », vous pouvez supprimer « bar » de foo comme ceci :

Notez que cela modifie en permanence le dictionnaire opéré. Si vous souhaitez conserver le dictionnaire original, vous devrez créer une copie à l’avance :

24voto

satels Points 410
<pre><code></code><p>Résultat : d = {1 : 2, ' 2 : 3}</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X