Удалить строки, содержащие только пробелы из списка

Как удалить пустые строки из списка? Я пробовал вот так:

starring = ['Vashu Bhagnani', 'Khemchand Bhagnani', ' ', 'Jacky Bhagnani', ' ', 'Prashant Shah', ' '] output = filter(bool, starring) 

Результат, который я хочу:

 ['Vashu Bhagnani', 'Khemchand Bhagnani', 'Jacky Bhagnani', 'Prashant Shah'] 

Но output заканчивается тем же, что и input . Какова правильная функция для filter ?

3 Solutions collect form web for “Удалить строки, содержащие только пробелы из списка”

Только пустая строка вычисляет значение False поэтому вам нужно использовать strip() для удаления любых пробелов, и тогда мы можем полагаться на непустые строки, которые оцениваются как истинные.

 >>> starring = ['Vashu Bhagnani', 'Khemchand Bhagnani', ' ', 'Jacky Bhagnani', ' ', 'Prashant Shah', ' '] >>> starring = filter(lambda name: name.strip(), starring) >>> starring ['Vashu Bhagnani', 'Khemchand Bhagnani', 'Jacky Bhagnani', 'Prashant Shah'] 

Хотя понимание списка может быть проще:

 >>> [name for name in starring if name.strip()] ['Vashu Bhagnani', 'Khemchand Bhagnani', 'Jacky Bhagnani', 'Prashant Shah'] 

Вы можете удалить конечные и ведущие пробелы, что приведет к пустой строке, если она содержит только те.

Понимание списка:

 l = [x for x in l if x.strip()] 

С filter и operator.methodcaller [docs] :

 l = filter(operator.methodcaller('strip'), l) 

или проще:

 l = filter(str.strip, l) 

operator.methodcaller был бы единственным способом, если вы хотите передать дополнительные аргументы методу.

 s = ['Vashu Bhagnani', 'Khemchand Bhagnani', '', 'Jacky Bhagnani', '', 'Prashant Shah', ''] [a for a in s if len(a) > 0] 
  • Caffe MemoryData Layer и Solver inteface
  • Список манипуляций с словарем в python - TypeError: unhashable type: 'dict'
  • Удаление дубликатов из данных json
  • Python: удалить дубликаты из текстового файла
  • Как подсчитать цифры, буквы, пробелы для строки в Python
  • Я пытаюсь написать программу с квадратичной формулой в ней, и я не могу понять, почему я продолжаю получать ошибку
  • Разверните webapp на GAE, затем выполните изменения в Интернете с консоли GAE
  • Pycharm и unittest не работают
  • Python - лучший язык программирования в мире.