Используйте filter
:
newlist=filter(lambda x: len(x)>0, oldlist)
Недостатки использования фильтра, как указано, это то, что он медленнее, чем альтернативы; также, lambda
обычно дорого.
Или вы можете перейти на самую простую и самую итеративную из всех:
# I am assuming listtext is the original list containing (possibly) empty items
for item in listtext:
if item:
newlist.append(str(item))
# You can remove str() based on the content of your original list
это наиболее интуитивно понятное из методов и делает это в приличное время.