Python中往列表中插入字典时,数据重复问题
作者:小芒先生
这篇文章主要介绍了Python中往列表中插入字典时,数据重复问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
往列表中插入字典时,数据重复问题
先贴以下代码
UserInfo =[] SelfMediaInfo = {'usr':'','pwd':'','videoIndex':''} with open(r"D:\SelfMediaData.txt",'r') as SelfMediaFile: selfMediaInfos = SelfMediaFile.readlines() for i in range(len(selfMediaInfos)): selfMediaInfo = selfMediaInfos[i].split('----') SelfMediaInfo['usr'] = selfMediaInfo[0].strip() SelfMediaInfo['pwd'] = selfMediaInfo[1].strip() SelfMediaInfo['videoIndex'] = selfMediaInfo[2].strip() UserInfo.append(SelfMediaInfo)
代码的用途是读取txt文档中的数据,然后根据数据的分类分别保存到usr,pwd,videoIndex中
按照上面的代码执行会发现UserInfo中列表中的所有的数据与selfMediaInfos的最后一行数据完全一样,与代码设计初衷相违背。
经过调试分析发现
只要SelfMediaInfo中的数据一变化,UserInfo中的所有数据就会跟着变化。
在此参考以下文章将问题得到有效解决
最后将
UserInfo.append(SelfMediaInfo)
修改为
UserInfo.append(SelfMediaInfo.copy())
问题得到有效解决!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。