Наименее короткий код, который получается на моей квалификации питона:
result = []
s = "one two three four"
lst = s.split()
for name in lst:
tmpn = name.strip()
if len( tmpn ) > 0:
result.append( tmpn )
Без проверки длины каждого элемента списка s.strip() можно получить пустые элементы вследствие разбиения последовательности пробелов на «межпробельные строки нулевой длины».
А короче как? Где мастера хардкора с функторами, лямбдами и прочими рулезами?