On Tue, Aug 10, 2010 at 9:59 AM, bob gailer <bgai...@gmail.com> wrote:
> On 8/10/2010 10:42 AM, Bill Allen wrote:
>>
>> Bob,
>>
>> I was really off on that algorithm and had way over complicated it.
>> I have it working correctly now, but for the sake of those who saw my
>> earlier really botched code, here is the resultant code that works.
>> The entire inner loop and intermediate variables are removed, but
>> shown commented out.  I had somehow thought I needed to read each
>> member of each subarray in individually.  That was not the case and
>> that inner loop was overwriting the array.
>>
>> # reads one line at a time from file and puts data into array
>>     for line in textf:
>>         #tempwords = line.split(None)
>>         #for n in range(0, len(room)-1):
>>         #    roomx[n] = tempwords[n]
>>         #room[m] = roomx
>>         room[m] = line.split(None)
>>         m += 1
>>
>>
>
> Great. Good work. Teach a man to fish?
>
> Now for the refinements. First you can use enumerate to obtain the room
> index:
>
>    for m, line in enumerate(textf):
>        room[m] = line.split(None)
>
>
> Second you can start with an empty list and append:
>
>    rooms = []
>    for line in textf:
>        rooms.append(line.split(None))
>
> Third you can use list comprehension:
>
>    rooms = [line.split(None) for line in textf]
>

Nice going, this is the best way of getting your answer from the
tutors list IMO, high fives all around. I wish more threads went like
this.

You don't actually have to specify the None in line.split AFAIK, but
it might be better to be explicit. thoughts on this, anyone?

Hugo
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to