天天看点

字典Dict中get()和keys()性能

昨天要处理几个G的数据时,要把原来用awk写的脚本改成用python写,存储成字典后要搜索键值,一开始用的是in data.keys()来判断是否存在,结果跑大半天都没有跑出结果

if key in data.keys():    #时间复杂度为O(n)
    code            
if data.get(key, False):      #时间复杂度O(1)
    code            

False是如果没有这个键值的话默认的返回值

这就是差距,一个复杂度是O(n),一个是O(1),如果数据量大的话,这是显著的差距!!!!!!!!!!!!!