#?-*-?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
提交
取消
