Quick compare string to list

Emile van Sebille emile at fenx.com
Wed Sep 30 15:06:14 EDT 2009


On 9/30/2009 11:36 AM Scooter said...
> I'm reading in a text file, and for each line in the file, I'm looking
> for the existence of phrases from a list. The list contains approx.
> 120 items currently but will most likely grow. This procedure itself
> is not the main function of my program and only grew out of the need
> to reformat certain phrases I'm finding in a file before re-outputting
> it. But as I suspected, this searching of the lists slows the whole
> process way way down. Was looking for ideas of a better way to do
> this.
> 
> I basically have
> 
> mylist=[]
> ...
> code that reads in the flat file into string 'flatfileString'
> ...
> for listitem in mylist:
>     if flatfileString.count(listitem):
>         ...whatever...I found it.
> 

Whatever you do next to reformat those certain phrases will require a 
second scan which doubles the time involved, and as you don't save the 
count anyway, if mylist were exchange couplets you could use replace 
directly.  Something like:

mylist = [('Chevy','Chevrolet'),
           ('GM','General Motors'),
           (... etc... )
          ]

for wrong,right in mylist:
     flatfileString=flatfileString.replace(wrong,right)


Flavor to taste,

Emile




More information about the Python-list mailing list