Hi, RossRGK wrote:
Kerri Reno wrote: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, KerriThx for the suggestion - i think that would match the number of fields to the number of parameters in the specific example but not the general case. ie fmts[3] could have 3fields this time, but might be 2 another time or something else.
Maybe you want to reconsider your approach and instead of use "lists" just a dict or class with the correct naming? If you use a class you could also attach all the meta information for formatting. Dicts are easily aliased to your formats using named arguments:'oats %(weight)0d kilos over %(days)0d days with %(workers)0d workers' % dict(weight=5,days=3,workers=10)
which would make more sense when you read it and/or edit the sentence sometime later. You could also consider extending the attributes to have the unit (e.g. kg, pound, days, ...) attached to it and decide to add a clever get() method to your container class (which replaces the list) and use it like this: 'oats %(weight.kg)s ...' % yourinstance ... where instance.get() would be called with 'weight.kg', splits on the . for the attribute: weight, calls self.weight.format(unit='kg') to retrieve "5 kilos" or something :-) Just some random thoughts. Regards Tino
smime.p7s
Description: S/MIME Cryptographic Signature
-- http://mail.python.org/mailman/listinfo/python-list