The 'row' in a search cursor is returned as a tuple and the elements there in are indexed just like a list.
fc = r'C:\path\to\featureClass
fields = ['predir', 'name', 'postdir', 'posttype']
with arcpy.da.SearchCursor(fc,fields) as cursor:
for row in cursor:
print(row)
''' returns multi-element tuples:
('W', 'ARBOR PARK', None, 'DR')
('S', 'FLORABUND', None, 'LN')
('S', '8000', 'W', None)
('W', 'GETTYSBURG', None, 'DR')
('S', 'PATRICIA', None, 'CIR')
('W', 'HELEN', None, 'DR')
('W', 'LUCADIA', None, 'WAY')
('S', 'RITSON', None, 'LN')
('W', 'MAYTIME', None, 'DR')
....
'''
In your case you only have row[0] and as Joshua Bixby notes you'll want to adjust your code to something like this:
with arcpy.da.SearchCursor(fc,'SHAPE@LENGTH') as cursor:
for row in cursor:
print(row)
''' returns a single element tuples:
(292.1710851770351,)
(484.15425925311877,)
(293.22981473912614,)
(262.00460512592036,)
(666.3035654334589,)
(4628.563366540029,)
(174.6003202336956,)
....
'''
I'll let you you work on getting the max value...
That should just about do it....