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.csdn.net/qq_29721419/article/details/70310183

最后将UserInfo.append(SelfMediaInfo)修改为UserInfo.append(SelfMediaInfo.copy()),问题得到有效解决

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值