🔎 Как удалить пустые слова из списка Python и упростить ваш код
Чтобы удалить пустые слова из списка в Python, вы можете использовать функцию filter()
с лямбда-функцией, которая проверяет, является ли слово пустым или нет.
words = ['apple', '', 'banana', '', 'cherry']
cleaned_words = list(filter(lambda word: len(word) > 0, words))
print(cleaned_words)
Вышеуказанный код создает список слов, в котором присутствуют пустые строки. Используя функцию filter()
и лямбда-функцию lambda word: len(word) > 0
, мы проверяем, что длина каждого слова больше нуля, и только тогда они будут добавлены в новый список cleaned_words
. В результате будет выведен список без пустых слов: ['apple', 'banana', 'cherry']
.
Детальный ответ
Как удалить пустые слова из списка Python
При работе с текстом в Python иногда возникает необходимость удалить пустые слова из списка. Пустые слова могут появляться, например, при разделении текста на слова с помощью функции split().
text = "Hello World! This is a sample text."
words = text.split() # Разделение текста на слова
print(words)
# Вывод: ['Hello', 'World!', 'This', 'is', 'a', 'sample', 'text.']
В приведенном примере, мы разделили текст на слова и получили список words. Однако, иногда могут появляться пустые слова, которые не несут смысловой нагрузки и могут помешать дальнейшей обработке текста.
Для удаления пустых слов из списка, мы можем использовать функцию filter(). Функция filter() принимает два аргумента - функцию проверки и итерируемый объект, и возвращает новый итератор с элементами, для которых функция проверки вернула True.
filtered_words = list(filter(None, words)) # Удаление пустых слов
print(filtered_words)
# Вывод: ['Hello', 'World!', 'This', 'is', 'a', 'sample', 'text.']
В данном случае, мы передали функцию None в качестве функции проверки. Функция None является фиктивной функцией, которая просто возвращает переданный ей аргумент. Таким образом, все элементы списка words, которые не являются пустыми, будут оставлены в итоговом списке filtered_words.
Мы также преобразовали итератор, возвращаемый функцией filter(), в список, чтобы получить конечный результат в виде списка слов.
Если вы хотите выполнить удаление пустых слов "на месте", то есть без создания нового списка, вы можете использовать метод списка remove(). Метод remove() удаляет первый найденный элемент, равный переданному аргументу.
words.remove('') # Удаление пустых слов "на месте"
print(words)
# Вывод: ['Hello', 'World!', 'This', 'is', 'a', 'sample', 'text.']
Обратите внимание, что метод remove() удаляет только первое вхождение пустого слова. Если в списке есть несколько пустых слов, вам нужно будет использовать цикл для удаления всех пустых слов.
Вывод
Теперь вы знаете, как удалить пустые слова из списка в Python. Вы можете использовать функцию filter() с функцией проверки None для создания нового списка без пустых слов. Если вы предпочитаете удалить пустые слова "на месте", вы можете воспользоваться методом remove().