以下代码需要一段时间才能执行。 我试图找出不在h_esmimsi字典中的c_imsi字典中的值,反之亦然。如何加速超过100k项目的两个字符之间的比较
c_imsi和h_esmimsi有超过100,000个条目。
c_imsi = {1:'36565',2:'34545',...,1011456:'65342',...} h_emsimsi = {1:'36545',2:'34545',. ..,1011456:'36565',...}
for k, v in c_imsi.iteritems():
for k1, v1 in h_esmimsi.iteritems():
if v == v1:
matchfound = True
write_csv.writerow([k1,v1,h_esmmsisdn[k1],'',k,v,c_msisdn[k],'OK'])
break
if matchfound == False:
write_csv.writerow(['-','-','-','',k,v,c_msisdn[k],'NOK'])
matchfound = False
for k, v in h_esmimsi.iteritems():
for k1, v1 in c_imsi.iteritems():
if v == v1:
matchfound = True
break
if matchfound == False:
write_csv.writerow([k,v,h_esmmsisdn[k],'','-','-','-','NOK'])
matchfound = False
请问我该如何加快此比较?
谢谢C.Fe.(012)你的代码没有内存问题,速度大约快3倍。 从30分钟到10分钟左右。这很公平。 –
@Austin Aigbe很高兴听到这个消息,我对Python非常陌生,所以它很棒,能够提供帮助。 –