Python リストに辞書要素を挿入すると、割り当てられていない辞書が空になり、新しい辞書要素が重複してしまう
Python リストに辞書要素を挿入すると、割り当てられていない辞書が空になり、新しい辞書要素が重複してしまう
データ処理を行うときに、リスト内でこの新しい辞書要素が見つかった場合、元の辞書は追加されるたびにクリアされないため、新しく追加されたすべての辞書要素は重複した値になるため、単純に記録します。
イニシャル
- 新しい辞書をリストに挿入します
list1 = [{
'text': '玻璃糖醛酸酶', 'normalized_result': '透明质酸酶'}]
dict1 = {
}
dict1["text"] = 'valueA'
dict1["normalized_result"] = 'keyA'
list1.append(dict1)
出力:
[{'text': 'ガラスウロニダーゼ', 'normalized_result': 'ヒアルロニダーゼ'},
{'text': 'valueA', 'normalized_result': 'keyA'}]
間違った結果
2 番目の要素を挿入するときは、ディクショナリを再度空にする必要があります。空にしないと、リスト内のすべての新しいキー値が複製されます。次のエラーが発生します。
dict1["text"] = 'valueB'
dict1["normalized_result"] = 'keyB'
list1.append(dict1)
出力:
[{'text': 'ガラスウロニダーゼ', 'normalized_result': 'ヒアルロニダーゼ'}, {'text' : '
valueB', 'normalized_result': 'keyB'},
{'text': 'valueB', 'normalized_result': 'keyB'}]
正しい結果
したがって、このとき、あらかじめ空の辞書を割り当てておく必要がある。正しい結果:
dict1 = {
}
dict1["text"] = 'valueB'
dict1["normalized_result"] = 'keyB'
list1.append(dict1)
出力:
[{'text': 'ガラスウロニダーゼ', 'normalized_result': 'ヒアルロニダーゼ'}, {'text' : '
valueA', 'normalized_result': 'keyA'},
{'text': 'valueB', 'normalized_result': 'keyB'}]
完全なコード
次のように:
list1 = [{
'text': '玻璃糖醛酸酶', 'normalized_result': '透明质酸酶'}]
dict1 = {
}
# 新增第一个字典元素
dict1["text"] = 'valueA'
dict1["normalized_result"] = 'keyA'
list1.append(dict1)
# 新增第二个字典元素
dict1 = {
}
dict1["text"] = 'valueB'
dict1["normalized_result"] = 'keyB'
list1.append(dict1)
出力:
[{'text': 'ガラスウロニダーゼ', 'normalized_result': 'ヒアルロニダーゼ'}, {'text' : '
valueA', 'normalized_result': 'keyA'},
{'text': 'valueB', 'normalized_result': 'keyB'}]