处理大数据选择set不要用list

代码片段(set)

ls_9 = df_9['mmsi'].tolist()
s_9 = set(ls_9)
print(len(ls_9))
print(ls_9[1853508 - 1])
start_time = time.time()
if str(999999999) in s_9:
    end_time = time.time()
    print(end_time - start_time)

运行结果

1853508
999999999
0.0

代码片段(list)

start_time = time.time()
if str(999999999) in ls_9:
    end_time = time.time()
    print(end_time - start_time)

运行结果

1853508
999999999
0.041977882385253906

原因我也不清楚;
我曾猜测是因为set把list原有的序列打乱;
这样原来在最后一条的数据位置可能提到了前面,因此加快了查询速度;
但如果两组数据进行比对,set还是快很多的话,那么问题就别这么简单了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容