为了账号安全,请及时绑定邮箱和手机立即绑定

运行结果与预期不符,期望得到:[{'name': 'AAA}, {'name': 'BBB'}, {'name': 'CCC'}]

运行结果与预期不符,期望得到:[{'name': 'AAA}, {'name': 'BBB'}, {'name': 'CCC'}]

Scrat 2018-01-16 00:07:28
# -*- coding: UTF-8 -*- import re allinfo=[] oneinfo={"name":""} # 使用正则匹配内容 html = '<p style="font-size:12px">AAA</p><p style="font-size:12px">BBB</p><p style="font-size:12px">CCC</p>' patternName = re.compile('<p style="font-size:12px">(.*?)</p>') names = patternName.findall(html) print "names的值为:",names # names的值为: ['AAA', 'BBB', 'CCC'] i=0 while i<len(names):     allinfo.append(oneinfo) # 为每个字典元素,设置具体的value值     allinfo[i]["name"] = names[i]     i=i+1 print "allinfo的值为:",allinfo期望得到:[{'name': 'AAA}, {'name': 'BBB'}, {'name': 'CCC'}]结果得到的是: [{'name': 'CCC'}, {'name': 'CCC'}, {'name': 'CCC'}]这是否和list的浅拷贝有关?麻烦解答一下
查看完整描述

1 回答

已采纳
?
产品经理不是经理

TA贡献481条经验 获得超143个赞

 allinfo[i]["name"]你这个是操作的同一个对象,所以结果不对。跟深浅拷贝没得关系。

# 下面代码能达到你想要的效果
names = ['AAA','BBB','CCC']
allinfo = []
i=0
while i<len(names):
    oneinfo = {}
    oneinfo['name'] = names[i]
    allinfo.append(oneinfo)
    i = i+1


查看完整回答
1 反对 回复 2018-01-16
  • 1 回答
  • 0 关注
  • 1136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信