python 当在列表中插入字典元素时,未赋空字典清空,导致新增字典元素重复
python 当在列表中插入字典元素时,未赋空字典清空,导致新增字典元素重复
在做数据处理时,遇到这种在列表内新增字典元素时,因为没有每次新增时都把原先字典清空,导致所有新增的字典元素都是重复值的情况,简单记录一下。
初始
- 新增字典插入至列表中
list1 = [{'text': '玻璃糖醛酸酶', 'normalized_result': '透明质酸酶'}]
dict1 = {}
dict1["text"] = 'valueA'
dict1["normalized_result"] = 'keyA'
list1.append(dict1)
output:
[{‘text’: ‘玻璃糖醛酸酶’, ‘normalized_result’: ‘透明质酸酶’},
{‘text’: ‘valueA’, ‘normalized_result’: ‘keyA’}]
错误结果
当插入第二个元素时,需重新清空字典,否则列表中的所有新增键值会重复。如下错误结果:
dict1["text"] = 'valueB'
dict1["normalized_result"] = 'keyB'
list1.append(dict1)
output:
[{‘text’: ‘玻璃糖醛酸酶’, ‘normalized_result’: ‘透明质酸酶’},
{‘text’: ‘valueB’, ‘normalized_result’: ‘keyB’},
{‘text’: ‘valueB’, ‘normalized_result’: ‘keyB’}]
正确结果
所以,此时需重新提前赋予空字典。正确结果:
dict1 = {}
dict1["text"] = 'valueB'
dict1["normalized_result"] = 'keyB'
list1.append(dict1)
output:
[{‘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)
output:
[{‘text’: ‘玻璃糖醛酸酶’, ‘normalized_result’: ‘透明质酸酶’},
{‘text’: ‘valueA’, ‘normalized_result’: ‘keyA’},
{‘text’: ‘valueB’, ‘normalized_result’: ‘keyB’}]