Şu anda nesne kimliğini test ettiğinizi unutmayın ( is
yalnızca True
her iki işlenen bellekte aynı nesne tarafından temsil ediliyorsa geri döner - bu, birbirine eşit olan iki nesne için her zaman geçerli değildir ==
). Bunu bilerek yapıyorsanız, kodunuzu şu şekilde yeniden yazabilirsiniz:
some_dict = {key: value for key, value in some_dict.items()
if value is not value_to_remove}
Ancak bu, istediğinizi yapmayabilir:
>>> 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'}
Yani muhtemelen !=
yerine istiyorsun is not
.