Wrapping statements in Python in SPSS

Mitya Sirenef msirenef at lightbird.net
Fri Dec 28 18:55:03 CET 2012

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, 
 > DimensionSourceTimeFrame10, DimensionSourceTimeFrame11, 
 > 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)


This produces output:

coldict {'second': 3, 'first': 1}
coldict {'second': 4, 'first': 2}

.. and then you can pass the coldict on to your string.

  - mitya

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

More information about the Python-list mailing list