1. ホーム
  2. python

[解決済み] Pythonで、辞書をループして、それが何かと等しい場合に値を変更するにはどうすればよいですか?

2023-02-19 07:25:17

質問

値がNoneの場合、""(空文字列)に変更したいのですが、可能でしょうか?

最初はこんな感じなんですが、忘れちゃうんですよね。

for k, v in mydict.items():
    if v is None:
... right?

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

for k, v in mydict.iteritems():
    if v is None:
        mydict[k] = ''

より一般的なケースとして、例えばキーを追加したり削除したりする場合、ループしているコンテナの構造を変更するのは安全ではないかもしれません -- ですから、ループしているコンテナに対して items を使ってその独立したリストのコピーでループすることは賢明かもしれません -- しかし、与えられた既存のインデックスに異なる値を代入することは ではなく は問題を起こさないので、Python 2.anyでは iteritems .

Python3 しかし、このコードでは AttributeError: 'dict' object has no attribute 'iteritems' エラーが発生します。使用する items() の代わりに iteritems() のようにします。

参照先 この投稿を