I have seen few examples or methods that worked the way that I needed them to. So, after some playing, I was able to use arcpy cursors in their simplest form in conjunction with Python lists to compute values across multiple rows under a single field. My application was for determining distances between points for grade calculations and assignment of elevation data to those points for design purposes. Every time that I tried to use multiple cursors on the same dataset, it did not work. I am assuming that once a cursor is created, a lock prevents other cursors from accessing the same data (even if they are searchCursors -> readOnly). Below is the code. Enjoy!
"""
Use an initial SearchCursor to populate a Python list with the field values.
Loop through the Python list and create a newList of derived values.
Use the newList with an UpdateCursor to populate the field of interest.
"""
import arcpy
print "Creating SearchCursor..."
searchRows = arcpy.SearchCursor("designFeatures", "", "", "MEAS", "MEAS D")
rowList = []
print "Appending searchCursor row fields to new Python list..."
for each in searchRows:
rowList.append(each.MEAS)
print "Appending operation completed."
print "Initial Python list: " + str(rowList)
newList = []
i = 0
j = 1
print "Computing alignment segment lengths for design purposes..."
if i < len(rowList):
print "Appending calculated values to a new Python list..."
for each in rowList:
if j == len(rowList):
newList.append(rowList)
break
else:
someCalculation = rowList - rowList
newList.append(someCalculation)
i += 1
j += 1
print "rowList calculations completed and appended to newList."
print "New List: " + str(newList)
print "Creating update cursor..."
updateRows = arcpy.UpdateCursor("designFeatures", "", "", "MEAS; SEG_LENGTH", "MEAS D")
print "Updating SEG_LENGTH field..."
##for each in newList:
## for every in updateRows:
## every.SEG_LENGTH = each
i = 0
for each in updateRows:
if i < len(newList):
each.SEG_LENGTH = newList
updateRows.updateRow(each)
i += 1
print "SEG_LENGTH field rows have been updated."
print "Creating SearchCursor for field value verification..."
verifyRows = arcpy.SearchCursor("designFeatures", "", "", "MEAS; SEG_LENGTH", "MEAS D")
for each in verifyRows:
print each.SEG_LENGTH
del searchRows, updateRows, verifyRows