slow loop?

Laura Creighton lac at strakt.com
Mon Jan 13 11:52:11 EST 2003


First optimization -- don't do  myString += character.  You copy the
string every time, and that slows down things a lot.  Instead, just
append the chars to a list and .join them, once, when you are done

Laura Creighton

> Is there a way I can make this small script any faster?  The file it
> reads in used to be only about a 100 lines and now it is well over
> 2000.  It takes about 14 seconds to run it on my PentiumII.  Thanks in
> advance - Bk
> 
> import time
> startTime=time.time()
> myList=[]
> finalList=[]
> myString=''
> file=open('Export.txt','r')
> lines=file.readlines()
> for line in lines:
>         for character in line:
>                 if character == '"':
>                         None
>                 elif character == ',' or character == '\n':
>                         myList.append(myString)
>                         myString=''
>                 else:
>                         myString += character
>         finalList.append(myList)
>         myList=[]
> endTime=time.time()
> print endTime-startTime
> 
> 
> Here are two lines from Export.txt (the first line ends with "NONE" -
> google and/or your browser might add some extra end of line
> characthers - this sample Export.txt should only have two lines)
> 
> "IDNUMBER","VRNUMBER","LASTNAME","FIRSTNAME","MAILNAME","SALUTATION","ADDRESS1","ADDRESS2","ADD
> RESS3","CITY","STATE","ZIP","COUNTY","CONGRESS","SENATEDIST","HOUSEDIST","RECSTATUS","REGISTER"
> ,"CARRT","HPHONE","WPHONE","FPHONE","APHONE","EMPLOYER","OCCUPATION","BIRTHDATE","CONSTITUENTTY
> PE","ORIGIN","AFFILIATION","SEX","PRECINCT","HOMESOUND","UPDATEDATE","FAMILY","CONTEXIST","EXPE
> XIST","VOTEEXIST","N
> TEEXIST","VOLEXIST","VIPEXIST","CASEEXIST","REMIND","BILLEXIST","WFAX_PHONE","CAR_PHONE","E_MAI
> L","PAGER","MAIL_WHERE","CONTACT","AWARD_TYPE","AWARD_DATE","ELIGIBLE","JOIN_DATE","PAY_GRP","P
> AY_AMOUNT","WADDRESS1","WADDRESS2","WADDRESS3","WCITY","WSTATE","WZIP","WCARRT","MADDRESS1","MA
> DDRESS2","MADDRESS3","MCITY","MSTATE","MZIP","MCARRT","DADDRESS1","DADDRESS2","DADDRESS3","DCIT
> Y","DSTATE","DZIP","
> CARRT","HOUSEHOLDMAILNAME","HOUSEHOLDSALUTATION","TOTALCONTRIBUTIONS","LARGESTCONTRIBUTION","AV
> ERAGECONTRIBUTION","LASTCONTRIBUTION","LASTCONTRIBUTIONDATE","YEAR1TOTAL","YEAR2TOTAL","CONTRIB
> UTIONSYEAR1","CONTRIBUTIONSYEAR2","NONE"
> "63","","Last","First","Ms. First L. Last","Sal","220 Street
> Blvd.","","","Oregon","OH","43616","Lucas","9","","","1","  /  /   
> ","","","","","","","","12/30/1899","Individual","","","Female","","HOME","07/13/1999","","Y","
> ","","","","","","","","","","","","H","","","
>  /  /    ","","  /  /    ","","0","220 Street
> Blvd.","","","Oregon","OH","43616","","220 Street
> Blvd.","","","Oregon","OH","43616","","220 Street
> Blvd.","","","Oregon","OH","43616-","","Ms. Frist L.
> Last","First","25.00","25.00","25.00","25.00","01/06/1999","0.00","0.00","0","0","none"
> -- 
> http://mail.python.org/mailman/listinfo/python-list





More information about the Python-list mailing list