On 9/4/2009 9:09 AM William Witteman said...
On Thu, Sep 03, 2009 at 11:26:35AM -0700, Emile van Sebille wrote:
Thanks to Emile for pointing out the error. There were several other
errors - initiating the counter in the loop (d'oh!), premature sorting
of the dictionary by keys, not providing an index row for the output
file, not returning anything from my function, and probably others.
Here is how it looks now - any pointers, stylistic or otherwise, are
welcome. It does, however, work.
That's normally when I stop looking at it. If I'm lucky, I'll never
need to work on it again. If and when I do, that's when I clean it up
in the area that needs attention. It's way to easy IMHO to turn one-off
projects into time-sinks.
Anyway, some notes interspersed below...
Emile
#!/usr/bin/python
"""
Take a collection of lists, combine them into one list, deleting duplicates.
Sort the list and use it as the leftmost column of a table. Then put each
lists contents into the table, one per column, with the elements aligned
with the leftmost (index) column.
"""
import os, sys, csv
def cmpss(filename,*sslists):
"""Write a CSV file from the collection of lists."""
if os.path.exists(filename):
print("%s exists: please choose another filename." % filename)
sys.exit(1)
else:
try:
fn = csv.writer(open(filename, "w"))
except IOError:
print("There is a problem opening the requested file. Sorry.")
sys.exit(1)
toprow = [x for x in range(len(sslists))]
This looks like toprow is simply range(len(sslists))...
toprow.insert(0, "index")
fn.writerow(toprow)
termdict = {}
number_of_columns = len(sslists)
for sslist in sslists:
for term in sslist:
termdict[term] = ["" for x in range(number_of_columns)]
this might also be said [""]*number_of_columns
sortedtermlist = termdict.keys()
sortedtermlist.sort()
counter = 0
for sslist in sslists:
for term in sslist:
#debug print(counter)
#debug print(term)
termdict[term][counter] = term
counter = counter + 1
for term in sortedtermlist:
row = [term]
row.extend(termdict[term])
fn.writerow(row)
return termdict
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor