Beginner Question : Iterators and zip

moogyd at yahoo.co.uk moogyd at yahoo.co.uk
Sat Jul 12 14:55:54 EDT 2008


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








More information about the Python-list mailing list