James Stroud wrote: > John Machin wrote: > > James Stroud wrote: > > > >>walterbyrd wrote: > >> > >>>This is the first real python program I have ever worked on. What I > >>>want to do is: > >>>1) count identical records in a cvs file > >>>2) create a new file with quantities instead duplicate records > >>>3) open the new file in ms-excel > >>> > >>>For example, I will start with a file like: > >>> > >>>1001 > >>>1012 > >>>1008 > >>>1012 > >>>1001 > >>>1001 > >>> > >>>and finish with a file like: > >>> > >>>1001,3 > >>>1008,1 > >>>1012,2 > >>> > >>>What I need to know: > >>>1) is there a function in python that will sort a file into another > >>>file. Something like: > >>>sort file1.txt > file2.txt from the DOS command line. I know there is > >>>also a similar "sort" funtion in Unix. > >>
snip... > >>>3) I will probably be working with 50 items, or less, would it be best > >>>for me to do this with a > >>>multi-diminsional array? For example: sort the file, read a rec into > >>>the array, if the next rec is the same then incr the count, otherwise > >>>add a new rec with a count of 1. Then write the array to a file? > >>> > >> > >>Ah, a real question. Use a dict: > >> > >>if adict.has_key(some_key): > > > > > > Hey, d00d, ask the department sysadmin to update your Python for you, > > then you'll be able to use this: > > > > if some_key in adict: > > > > > >> adict[some_key] += 1 > >>else: > >> adict[some_key] = 1 > >> > > Last I checked, both worked. > > James > Alternatively, the whole if can be replaced with:- adict[some_key] = adict.get(some_key, 0) + 1 Tim -- http://mail.python.org/mailman/listinfo/python-list