list与set的查询效率,大量数据查询匹配,必须选set

今天吃了个基础差的亏,虽然说知道list和set有查询效率上的区别,但是一直不当回事

这次碰到一个活,要求是将45w的2组数据,进行匹配合并

一个是店铺导出的订单数据,一个是快递给的物流数据

需要把2个匹配合并到一个表格,当然,有些人会说了,用excel处理,函数啥的,1个文件都有1g多,打开电脑得等好久才能反应,要匹配,估计得几个小时

所以用python来写脚本,进行数据匹配

首先原始店铺文件是7个,一个文件里面有6.7w条数据,快递数据是2个,1个里面有22w条,匹配就通过快递单号进行

原始数据都全部转化成csv,方便操作

接下去就是操作思路

1,将店铺文件一行行进行循环,

2,每次去2个快递数据表格里面搜索,

3,如果找到,就把快递数据放到后面

4,如果没找到,就原数据写入

快递数据做了处理,提取单号做成一个list,然后在做一个dict,格式{单号: 对应原始数据},方便找到后进行提取原始数据

然后开始循环操作,实际执行下来,每1000次查询,需要耗费6秒左右时间

全部数据处理完毕需要30分钟

然后进行优化

将list改成set,其他不动,结果20秒完成!这个效率简直了!

这时就看出来了,基础的东西,有时候就决定了效率

 

转载于:https://www.cnblogs.com/darkspr/p/11555675.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值