easy questions from python newbie

Tim timwhite at rogers.com
Mon Jul 24 14:30:40 EDT 2006


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




More information about the Python-list mailing list