filter(None, str)
не удаляет пустые строки с пробелом '', а только удаляет '' и ''.
join(str).split()
удаляет оба.но если ваш элемент списка имеет пробел, то он изменит ваши элементы списка также потому, что он сначала объединяет все ваши элементы списка, а затем разбивает их на пробелы, поэтому вы должны использовать: -
str = ['hello', '', ' ', 'world', ' ']
print filter(lambda x:x != '', filter(lambda x:x != ' ', str))
Это удалит оба ине будет влиять и на ваши элементы Нравится: -
str = ['hello', '', ' ', 'world ram', ' ']
print ' '.join(lstr).split()
print filter(lambda x:x != '', filter(lambda x:x != ' ', lstr))
вывод: -
['hello', 'world', 'ram'] <-------------- вывод <code>' '.join(lstr).split()
['hello', 'world ram']