[Tutor] alphabetizing a file by lines
orbitz
orbitz at ezabel.com
Mon Jul 19 08:44:31 CEST 2004
I didn't mean to imply learning how things are implemented is bad, but
rather learn on a simple test case so you understand the basic concept,
such as just sorting elements in a list rather than sorting them based
on very specific needs. That way you learn the basics of sorting, but
then can just use builtins to accomplish a more difficult task.
Brian van den Broek wrote:
> orbitz said unto the world upon 18/07/2004 16:25:
>
>> Dragonfirebane seems to want to write his code in the way he has
>> given under the guise of learning. I'm not sure if others would agree
>> or disagree with me here, but I think doing such a thing is probably
>> counter productive with python.
>> I'd like to hear others suggestions but here are my thoughts.
>> In python, we should generally try to avoid duplicating as much code
>> as possible. This means making use of the standard library and 3rd
>> party libraries where we can. In dragonfirebane's situation he most
>> likely wants to learn about sorting. which is fine, however I think
>> he'd have more success if he took a simple case of say, implementing
>> a high school level sorting algorithm on a simple list to get the
>> idea of how sorting is done, but for something like this just using
>> what python offers. IMO, using large relatively complex programs to
>> learn about relatively simplistic problems is counter productive
>> because you spend too much time in silly details of implementation
>> rather than focusing on what you are trying to learn.
>>
>>
>> Dragonfirebane at aol.com wrote:
>>
>>> Hello all,
>>>
>>> I'm trying to write a program that alphabetizes a file by the first
>>> letter on each line. I'm having some problems because as soon as the
>>> program finds a letter, it looks for the next letter, ignoring
>>> subsequent appearances of that letter. I can think of a couple ways
>>> to fix this but none of them seem to work. The first of these would
>>> be to add a special character to lines that have already been
>>> alphabetized, but file.write() writes to the end of a file and i
>>> would need to write the character at the current position in the
>>> file. This might be circumvented by creating a file for each line
>>> that is alphabetized, but that seems a bit extreme . . . The code is
>>> below. Any suggestions would be appreciated. Future concerns will be
>>> alphabetizing past the first letter.
>>>
>>> ##############
>>> def linum():
>>
>
> <SNIP>
>
>>> Thanks in advance,
>>> Orri
>>>
>>> Email: dragonfirebane at aol.com
>>> AIM: singingxduck
>>> Programming Python for the fun of it.
>>> ------------------------------------------------------------------------
>>>
>>
>
> Hi all,
>
> as I'm still learning, I doubt that it was my thoughts on this that
> orbitz was seeking :-)
>
> But I spent a bit of time re-implementing a few library functions just
> to learn how to do it (I did my own cmp() and sort() for instance). I
> thought I learned something useful from the effort.
>
> I wouldn't use them again -- in fact, once they worked, I trashed
> them. (They'd served their learning purpose.) But for learning, the
> duplication of some of the built-in and lib functions seems almost
> inevitable to me. Learners want to try central, basic, and fairly
> small tasks at first. Central and basic tasks seem those likely to
> have an implementation in Python already ;-)
>
> (I absolutely agree that once past learning, it would be daft not to
> rely on the lib when what was there did what you want.)
>
> What I find odd about dragonfirebane's approach though is the use of
> regular expressions to accomplish the sorting task. I felt like I was
> learning by taking something central and re-doing it in basic building
> blocks. By using r.e. I feel like dfb is re-doing the central and
> fairly simple in terms of the considerably more complex and I at least
> have doubts about the learning value of that approach. (But what do I
> know ;-)
>
> Best to all,
>
> Brian vdB
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list