AnsweredAssumed Answered

Concatenate iterating variable with string in For loop

Question asked by ejuser on Nov 23, 2015
Latest reply on Nov 30, 2015 by ejuser

I summarize rows in a table in the SearchCursor and store them as variables.  I want to refer to these variables in the following update cursor to write to a table.  I get the following error on the second last line of code (in red): Tuple object does not support item assignment.  When I debug the code, ROW[0] equals 'ARSSPAN' as a string.  I want ROW[0] to reference the integer ARSSPAN summarized in the search cursor above.  In the next iteration of the UpdateCursor, I want the integer STSPAN to be written out, etc.  I feel my issue is with assembling a variable reference through concatenating a string with the iterator.  Any assistance would be greatly appreciated.

 

    # Create the search cursor to iterate through table and sum spans and cost

    with arcpy.da.SearchCursor(fcdtest, ("FeedClass","SHAPE_Length","MGMTCOST",)) as cursor:

        for row in cursor:

            if row[0] == "ARS":

                ARSSPAN += row[1]/55

                ARSCOST += row[2]

            elif row[0] == "ST":

                STSPAN += row[1]/55

                STCOST += row[2]

            elif row[0] == "S":

                SSPAN += row[1]/55

                SCOST += row[2]

            elif row[0] == "ARU":

                ARUSPAN += row[1]/55

                ARUCOST += row[2]

            elif row[0] == "UT":

                UTSPAN += row[1]/55

                UTCOST += row[2]

            elif row[0] == "U":

                USPAN += row[1]/55

                UCOST += row[2]

 

    fld = "YR2015"

    feedcls = ["ARS","ST","S","ARU","UT","U"]

 

    for cls in feedcls:

        with arcpy.da.UpdateCursor(out_data, (fld,)) as cursor:

            row[0] = cls + 'SPAN'

             cursor.updateRow(row)

Outcomes