Далее просто разбивает каждый элемент на подэлементов не более k = 10 символов :
k = 10
[x[i:i+k] for x in list1 for i in range(0, len(x), k)]
Результат:
['There', 'are two', 'goats on t', 'he bridge']
Если вы хотите
разделить пробелы на k = 10 плюс / минус t = 2 символа , вам потребуется немного более сложный подход:
from functools import reduce
import operator
def split_about_k(s, k=10, t=1):
"""split s at spaces into k +/- t sized subtsrings"""
i = 0
while i < len(s)-k:
j = s.rfind(' ', i+k-t, i+k+t)
if j < 0:
yield s[i:i+k]
i = i + k
else:
yield s[i:j]
i = j + 1
yield s[i:]
reduce(operator.concat, [list(split_about_k(x, 10, 2)) for x in list1])
Результат:
['There', 'are two', 'goats on', 'the bridge']