Python Boot Camp 11/10-11/14

2008-10-10 Thread Kerri Reno
Anyone thinking about attending the Python Boot Camp at Big Nerd
Ranch?  This is the time.  If they don't get one more person they will
cancel the session.  So if you're on the fence, take one for the
Gipper, and sign up for the November session.

http://www.bignerdranch.com/classes/python.shtml

Kerri

-- 
Yuma Educational Computer Consortium
Compass Development Team
Kerri Reno
[EMAIL PROTECTED]  (928) 502-4240
.·:*¨¨*:·.   .·:*¨¨*:·.   .·:*¨¨*:·.
--
http://mail.python.org/mailman/listinfo/python-list


Re: FLexible formatted text involving nested lists?

2008-10-09 Thread Kerri Reno
Ross,

I'm no expert in python, so excuse me if this is inane.

What I would do is have fmts be a dictionary where
fmts = { 3 = 'oats %0d kilos over %0d days with %0d workers',
 2 = 'barley %0d lbs for %0d hours',
 1 = 'apples %0d baskets'}

then something like
  for x in bigList:
 print fmts[len(x)] % x

I didn't test this, but in theory it should work.

Hope this helps,
Kerri

On Thu, Oct 9, 2008 at 2:36 PM, RossRGK [EMAIL PROTECTED] wrote:
 I'm having trouble getting my head around a solution for a situation where I
 need to flexibly format some text with a varying number of embedded fields.

 Here's a simplified description of my challenge...

 I have a list of lists called bigList:

 bigList = [ little, small, tiny]

 The sub-lists have varying sizes.  I won't know how many items they have but
 it will be between 0 and 3

 So perhaps little = [3, 2, 7]
 small = [6,4]
 tiny = [2]

 The values in those sub lists correspond to formatted print strings. The
 formatting strings will change over time and they are in a list called
 fmts where

 fmts = [fmtA, fmtB, fmtC]   where

 fmtA = 'oats %0d kilos over %0d days with %0d workers'
 fmtB = 'barley %0d lbs for %0d hours'
 fmtC = 'apples %0d baskets'

 If I knew how many fields were in each 'sub-list' in bigList ahead of time,
 and it never changed I could awkwardly do this:

 print fmtA %(little[0], little[1], little[2])
 print fmtB %(small[0], small[1])
 print fmtC %(tiny[0])

 or equivalently,

 print fmts[0] %(bigList[0][0], bigList[0][1], bigList[0][2])
 print fmts[1] %(bigList[1][0], bigList[1][1])
 print fmts[2] %(bigList[2][0])

 Both approaches would yield:
 oats 3 kilos over 2 days with 7 workers
 barley 6 lbs for 4 hours
 apples 2 baskets


 Now my challenge: since the number of fields is unknown at design time, my
 app needs to add be able to flexibly handle this.

 I though maybe I could use a loop that figures things out as it goes along.
 e.g...

 i=0
 for fmtString in fmts
  numbOfFields = len(fmt[i])
  print fmtString %(bigList[i][ need for 0 to numbOffields worth of
 indices!] )

 But I don't know how to have a number of items in the print expression that
 align to the numbOfFields value!?  Is there some other approach I can use?

 I thought perhaps it would accomodate extra elements in the %(...) part of
 the formatted print expression which would be ignored, but that doesn't
 work.

 Maybe I have to break my fmts up and do a field at a time?  Any thoughts are
 appreciated   :)

 -Ross.
 --
 http://mail.python.org/mailman/listinfo/python-list




-- 
Yuma Educational Computer Consortium
Compass Development Team
Kerri Reno
[EMAIL PROTECTED]  (928) 502-4240
.·:*¨¨*:·.   .·:*¨¨*:·.   .·:*¨¨*:·.
--
http://mail.python.org/mailman/listinfo/python-list