Просто пройдите тройки из zip()
и распечатайте длину самого длинного слова:
lst = [['hello','hi','hey'],['where','when','why'],['him','herself','themselves']]
for i, triple in enumerate(zip(*lst), start=1):
print('length%d = %d' % (i, len(max(triple, key=len))))
# length1 = 5
# length2 = 7
# length3 = 10
Или как словарь:
{'length%d' % i: len(max(e, key=len)) for i, e in enumerate(zip(*lst), start=1)}
# {'length1': 5, 'length2': 7, 'length3': 10}
Что лучше, чем хранение переменных для каждой длины.