Solved! Go to Solution.
def main(): workspace = arcpy.GetParameterAsText(0) arcpy.env.workspace = workspace field = "newId" newidfield = arcpy.AddField_management(workspace,'newId','TEXT','','','','','NULLABLE') id_tracking = {} cursor = arcpy.UpdateCursor(workspace) for row in cursor: current_id = row.getValue(field) if current_id in id_tracking: count = id_tracking[current_id] count += 1 row.setValue(field,str(count).zfill(2)) id_tracking[current_id] = count else: count = 1 row.setValue(field,str(count).zfill(2)) id_tracking[current_id] = count cursor.updateRow(row) new_field = arcpy.CalculateField_management(workspace,"newId","!oldId!"+"!newId!",'PYTHON')
def main(): workspace = arcpy.GetParameterAsText(0) arcpy.env.workspace = workspace field = "newId" newidfield = arcpy.AddField_management(workspace,'newId','TEXT','','','','','NULLABLE') id_tracking = {} cursor = arcpy.UpdateCursor(workspace) for row in cursor: current_id = row.getValue(field) if current_id in id_tracking: count = id_tracking[current_id] count += 1 row.setValue(field,str(count).zfill(2)) id_tracking[current_id] = count else: count = 1 row.setValue(field,str(count).zfill(2)) id_tracking[current_id] = count cursor.updateRow(row) new_field = arcpy.CalculateField_management(workspace,"newId","!oldId!"+"!newId!",'PYTHON')
Have you tried using a dictionary? Perhaps something along these lines:def main(): workspace = arcpy.GetParameterAsText(0) arcpy.env.workspace = workspace field = "newId" newidfield = arcpy.AddField_management(workspace,'newId','TEXT','','','','','NULLABLE') id_tracking = {} cursor = arcpy.UpdateCursor(workspace) for row in cursor: current_id = row.getValue(field) if current_id in id_tracking: count = id_tracking[current_id] count += 1 row.setValue(field,str(count).zfill(2)) id_tracking[current_id] = count else: count = 1 row.setValue(field,str(count).zfill(2)) id_tracking[current_id] = count cursor.updateRow(row) new_field = arcpy.CalculateField_management(workspace,"newId","!oldId!"+"!newId!",'PYTHON')
As an added bonus, you don't need the autoIncrement function anymore.