Wrapping statements in Python in SPSS

Mitya Sirenef msirenef at lightbird.net
Fri Dec 28 19:20:15 CET 2012


On 12/28/2012 01:05 PM, Mitya Sirenef wrote:
> On 12/28/2012 12:55 PM, Mitya  Sirenef wrote:
 >> On 12/28/2012 12:33 PM, alankrinsky at gmail.com wrote:
 >>> I think 396 just comes from the end of the Python loop, without 
indicating which line in the loop is
 >> at issue.
 >> >
 >> > Here is the full code from this section of the loop:
 >> >
 >> >
 >> > for (
 >> > msr, brk, dmn, src, dspd1, dspd2, dspd3, dspd4, dspd5, dspd6, 
dspd7, dspd8, dspd9, dspd10, dspd11, dspd12,
 >> > period1, period2, period3, period4, period5, period6, period7, 
period8, period9, period10, period11, period12
 >> > ) in zip(
 >> > Measure, BreakVariable, Dimension, Sources, 
DimensionSourceTimeFrame1, DimensionSourceTimeFrame2, 
DimensionSourceTimeFrame3, DimensionSourceTimeFrame4,
 >> > DimensionSourceTimeFrame5, DimensionSourceTimeFrame6, 
DimensionSourceTimeFrame7, DimensionSourceTimeFrame8, 
DimensionSourceTimeFrame9,
 >> > DimensionSourceTimeFrame10, DimensionSourceTimeFrame11, 
DimensionSourceTimeFrame12,
 >> > TimeFrame1, TimeFrame2, TimeFrame3, TimeFrame4, TimeFrame5, 
TimeFrame6, TimeFrame7, TimeFrame8, TimeFrame9, TimeFrame10, 
TimeFrame11, TimeFrame12
 >> > ):
 >> >
 >> >
 >> > spss.Submit(r"""
 >> >
 >> >
 >> > Alan
 >> >
 >> >
 >>
 >> By the way, when lines run so long they can get hard to manage, edit,
 >> understand, et cetera. You should consider setting things up cleanly
 >> before doing the loop and using a list of names for columns like so:
 >>
 >>
 >> def main():
 >> l1, l2 = [1,2], [3,4]
 >> zipped = zip(l1, l2)
 >> colnames = "first second".split()
 >>
 >> for columns in zipped:
 >> coldict = dict(zip(colnames, columns))
 >> print("coldict", coldict)
 >>
 >
 >
 > Should really be 'for column in zipped:' !
 >
 > -m
 >

Doh - the code is good, but I got a little confused with variable names.
This should be more like it:

def main():
     c1, c2   = [1,2], [3,4]
     zipped   = zip(c1, c2)
     colnames = "first second".split()

     for values in zipped:
         valdict = dict(zip(colnames, values))
         print("valdict", valdict)

main()


  -m


-- 
Lark's Tongue Guide to Python: http://lightbird.net/larks/




More information about the Python-list mailing list