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中的所有数据就会跟着变化。
在此参考以下文章将问题得到有效解决
《Python——列表中存放字典遇到的问题》
https://blog.****.net/qq_29721419/article/details/70310183
最后将UserInfo.append(SelfMediaInfo)修改为UserInfo.append(SelfMediaInfo.copy()),问题得到有效解决