python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python列表插入字典,数据重复

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中的所有数据就会跟着变化。

在此参考以下文章将问题得到有效解决

Python列表中存放字典遇到的问题

最后将

UserInfo.append(SelfMediaInfo)

修改为

UserInfo.append(SelfMediaInfo.copy())

问题得到有效解决!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文