Удаление пустых элементов из массива в Python
with open("text.txt", 'r') as file:
for line in file:
line = line.rstrip('n' + '').split(':')
print(line)
у меня возникли проблемы с удалением пустых списков в серии генерируемых массивов. Я хочу сделать каждую строку массивом в text.txt
, поэтому у меня будет возможность точно получить доступ к каждому элементу отдельно, каждой строки.
пустые списки отображаются как ['']
- Как вы можете видеть по четвертой строке, я попытался явно удалить их. Пустые элементы были однажды заполнены новыми символами строки, они были успешно удалены используя .rstrip('n')
.
Edit:
у меня было заблуждение с терминологией, выше обновляется. По сути, я хочу избавиться от пустых списков.
1 ответов
поскольку я не вижу вашей точной строки, трудно дать вам решение, которое идеально соответствует вашим требованиям, но если вы хотите получить все элементы в списке, которые не являются пустыми строками, то вы можете сделать это:
>>> l = ["ch", '', '', 'e', '', 'e', 'se']
>>> [var for var in l if var]
Out[4]: ['ch', 'e', 'e', 'se']
вы также можете использовать filter
С None
или bool
:
>>> filter(None, l)
Out[5]: ['ch', 'e', 'e', 'se']
>>> filter(bool, l)
Out[6]: ['ch', 'e', 'e', 'se']
если вы хотите избавиться от списков с пустыми строками, то для вашего конкретного примера вы можете сделать следующее:
with open("text.txt", 'r') as file:
for line in file:
line = line.rstrip('\n' + '').split(':')
# If line is just empty
if line != ['']:
print line