Être conscient que vous êtes en train de tester pour l'identité de l'objet (is
seulement des retours True
si les deux opérandes sont représentés par le même objet en mémoire ce n'est pas toujours le cas avec les deux objet que de comparer l'égalité avec ==
). Si vous faites cela sur le but, alors vous pouvez réécrire votre code
some_dict = {key: value for key, value in some_dict.items()
if value is not value_to_remove}
Mais cela ne peut pas faire ce que vous voulez:
>>> some_dict = {1: "Hello", 2: "Goodbye", 3: "You say yes", 4: "I say no"}
>>> value_to_remove = "You say yes"
>>> some_dict = {key: value for key, value in some_dict.items() if value is not value_to_remove}
>>> some_dict
{1: 'Hello', 2: 'Goodbye', 3: 'You say yes', 4: 'I say no'}
>>> some_dict = {key: value for key, value in some_dict.items() if value != value_to_remove}
>>> some_dict
{1: 'Hello', 2: 'Goodbye', 4: 'I say no'}
Donc, vous voulez probablement, !=
au lieu de is not
.