python字典更新解决覆盖问题

您所在的位置:网站首页 python怎么在一个文件里写两个函数 python字典更新解决覆盖问题

python字典更新解决覆盖问题

2023-06-14 05:26| 来源: 网络整理| 查看: 265

问题示例: 输出时发现列表里的字典全部变成了最后一个字典的键值对。 下面展示一些 。

// An highlighted block data1 = [] all_data = {} for td in trs: name = td.xpath('./td[2]/text()')[0] xq = td.xpath('./td[3]/text()')[0] subject = td.xpath('./td[4]/text()')[0] type = td.xpath('./td[5]/text()')[0] xuefen = td.xpath('./td[6]/text()')[0] score = td.xpath('./td[7]/text()')[0] time = td.xpath('./td[9]/text()')[0] all_data.update({'学期': xq, '科目': subject, '类别': type, '学分': xuefen, '分数': score, '成绩登记时间': time}) data1.append(all_data) print(data1)

分析原因:由于字典的引用不变, 将数据存入后,会覆盖原来的字典内容 解决方法: 将字典的初始化放到循环内部

data1 = [] for td in trs: all_data = {} name = td.xpath('./td[2]/text()')[0] xq = td.xpath('./td[3]/text()')[0] subject = td.xpath('./td[4]/text()')[0] type = td.xpath('./td[5]/text()')[0] xuefen = td.xpath('./td[6]/text()')[0] score = td.xpath('./td[7]/text()')[0] time = td.xpath('./td[9]/text()')[0] all_data.update({'学期': xq, '科目': subject, '类别': type, '学分': xuefen, '分数': score, '成绩登记时间': time}) data1.append(all_data) print(data1)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3