# -*- 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
添加回答
举报
0/150
提交
取消