как удалить пустую строку из листа пайтон
к примеру ест код list = [12,3,1,'',99,7,120]
как удалить пустой элемент ?
Ответы (2 шт):
Автор решения: A_Vaclav
→ Ссылка
list.remove(x) - Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует. Справка.
def remove_in_list(arr, template):
try:
res = arr[::]# не будем мутировать входные данные
res.remove(template)
except ValueError:
#pass
print('Элемента нет в списке')
res = arr
return res
# Проверим как работает
arr = [12,3,1,'',99,7,120]
arr = remove_in_list(arr, '')
print(arr)
arr = remove_in_list(arr, '')
print(arr)
Выводит:
[12, 3, 1, 99, 7, 120]
Элемента нет в списке
[12, 3, 1, 99, 7, 120]
И вариант без try...except, для "начинающих":
def remove_in_list_not_try(arr, template):
if template in arr:
res = arr[::]# не будем мутировать входные данные
res.remove(template)
else:
#pass
print('Элемента нет в списке')
res = arr
return res
# Проверим как работает
arr = [12,3,1,'',99,7,120]
arr = remove_in_list_not_try(arr, '')
print(arr)
arr = remove_in_list_not_try(arr, '')
print(arr)
Автор решения: CrazyElf
→ Ссылка
Как вариант, если нужно удалить сразу и пустые строки, и нули, и пустые коллекции, и значения False, в общем всё "пустое" одним махом:
lst = [12,3,1,'',99,7,120]
print(list(filter(None, lst)))
# [12, 3, 1, 99, 7, 120]
Ну или ладно, пусть только пустые строки удалять нужно:
lst = [12,3,1,'',99,7,120]
print(list(filter(''.__ne__, lst)))
# [12, 3, 1, 99, 7, 120]