辞書にする必要があるリストがあります。リストには、異なる値を持つ重複した (すぐに) キーがあります。これらのキーを見つけて新しい値を追加するにはどうすればよいですか?
list=[q:1,w:2,q:7]
dictionary= q:1,7
w:2
前もって感謝します
辞書にする必要があるリストがあります。リストには、異なる値を持つ重複した (すぐに) キーがあります。これらのキーを見つけて新しい値を追加するにはどうすればよいですか?
list=[q:1,w:2,q:7]
dictionary= q:1,7
w:2
前もって感謝します
辞書リストに値を作成して、次のようにします。
dictionary = {'q': [1, 7],
'w': [2]
}
など。つまり、1 項目の値は 1 項目のリストです。これは、別の が'q'
ある場合、これを行うことができることを意味します。
dictionary['q'].append(5)
dictionary['q']
それがKeyError
初めての場合を除き、setdefault
代わりに次を使用します。
dictionary.setdefault('q', []).append(5)
したがって、入力リスト内のすべてのキーと値のペアを繰り返し処理し、それぞれに対して上記を実行する必要があります。
または、次のようになりたい場合もありdictionary
ます。
dictionary = collections.defaultdict(list)
だからあなたはただすることができますdictionary['q'].append(5)
-そしてそれはすべての点で上記と同じように機能します。元のリストを解析し、すべての値を適切に設定した後、辞書は次のようになります。
dictionary = {'q': [1, 7, 5]
'w': [2, 8, 10, 80]
'x': [3]
}
そして、あなたはやろうとしますprint(dictionary['y'])
。どうなると思いますか?通常の dict と を使用するとsetdefault
、これはエラーと見なされるため、 が発生しますKeyError
。を使用するdefaultdict
と、空のリストが出力されます。これらのうちどちらがコードにとってより意味があるかによって、どちらのコーディング方法を決定する必要があります。