Beginner Question : Iterators and zip

Larry Bates larry.bates at websafe.com`
Sat Jul 12 15:18:34 EDT 2008


moogyd at yahoo.co.uk wrote:
> Hi group,
> 
> I have a basic question on the zip built in function.
> 
> I am writing a simple text file comparison script, that compares line
> by line and character by character. The output is the original file,
> with an X in place of any characters that are different.
> 
> I have managed a solution for a fixed (3) number of files, but I want
> a solution of any number of input files.
> 
> The outline of my solution:
> 
>         for vec in zip(vec_list[0],vec_list[1],vec_list[2]):
>             res = ''
>             for entry in zip(vec[0],vec[1],vec[2]):
>                 if len(set(entry)) > 1:
>                     res = res+'X'
>                 else:
>                     res = res+entry[0]
>             outfile.write(res)
> 
> So vec is a tuple containing a line from each file, and then entry is
> a tuple containg a character from each line.
> 
> 2 questions
> 1) What is the general solution. Using zip in this way looks wrong. Is
> there another function that does what I want
> 2) I am using set to remove any repeated characters. Is there a
> "better" way ?
> 
> Any other comments/suggestions appreciated.
> 
> Thanks,
> 
> Steven
> 
> 
> 
> 
> 
You should take a look at Python's difflib library.  I probably already does
what you are attempting to "re-invent".

-Larry



More information about the Python-list mailing list