1. ホーム
  2. python

[解決済み] キーが不明な場合、辞書から項目を削除する

2022-09-13 01:44:36

質問

辞書から値によって項目を削除する場合、つまり項目のキーが不明な場合に最適な方法は何ですか。 以下は簡単なアプローチです。

for key, item in some_dict.items():
    if item is item_to_remove:
        del some_dict[key]

もっと良い方法はないでしょうか? 辞書を反復しながら変異(項目の削除)することは問題ないですか?

どのように解決するのですか?

現在、オブジェクトの同一性をテストしていることに注意してください ( is だけが返されます。 True ). もし、意図的にこのようにしているのであれば、コードを次のように書き換えることができます。

==

しかし、これでは思い通りにならないかもしれません。

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"} >>> 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'} の代わりに != .