Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/50: Рейтинг темы: голосов - 50, средняя оценка - 4.86
Yashman
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
1

Удаление элементов из списка

15.06.2013, 18:35. Просмотров 9389. Ответов 8
Метки нет (Все метки)

Всем привет! У меня проблема с удалением элементов из списка: не получается удалить элементы ' '. Кто-нибудь может подсказать, в чем ошибка?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 import tkinter
 
Answ=[]
a = open('Answ.txt', 'r')
lines = a.readlines()
for k in lines:
    cleared= k.splitlines()
    l = len(cleared)
    for i in [0,l-1]:
        if cleared[i] == ' ':
            del cleared[i]
    Answ.extend(cleared)
 
print(Answ)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2013, 18:35
Ответы с готовыми решениями:

Удаление элементов из списка
Добрый день, сделал чтение из excel файла построчно import xlrd import os...

Удаление из списка повторяющихся элементов
Здравствуйте! По заданию нужно считать из файла символы и посчитать...

Обработка и удаление элементов списка
Помогите решить такую задачу: есть список, состоящий из вложенных списков....

Удаление из списка
Считывается список из файла csv. Так как некоторые значения не указаны, на их...

Удаление элемента из списка
Добрый вечер ! Ситуация такая, есть список который состоит из списков, в...

8
ilnurgi
139 / 139 / 38
Регистрация: 20.02.2012
Сообщений: 597
15.06.2013, 18:52 2
а какая у вас задача?
в тексте удалить все пробелы?
0
Yashman
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
15.06.2013, 18:57  [ТС] 3
Мне необходимо создать список состоящий из непустых строк файла Answ.txt.
0
Вложения
Тип файла: txt answ.txt (204 байт, 23 просмотров)
ilnurgi
139 / 139 / 38
Регистрация: 20.02.2012
Сообщений: 597
15.06.2013, 19:12 4
вариант 1
Python
1
open('new_answ.txt', 'w').write(open('answ.txt').read().replace('\n\n', '\n'))
вариант 2
Python
1
2
3
4
5
6
ltext = open('answ.txt').read().splitlines()
for index, data in enumerate(ltext):
    if data == '':
        del ltext[index]
 
open('new_answ1.txt', 'w').write('\n'.join(ltext))
Добавлено через 1 минуту
ой. теже список нужен.
во втором варианте ltext без пустых строк
0
Yashman
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
15.06.2013, 19:34  [ТС] 5
Переписал код, только вместо записи в файл добавил данные в список Answ (мне он нужен для дальнейшей работы), но в итоге получилось тоже самое - в списке остались пробелы.
Может вы могли бы объяснить, почему нужного результата не дает исходный код?
0
Вложения
Тип файла: docx Python 3.docx (11.5 Кб, 14 просмотров)
ilnurgi
139 / 139 / 38
Регистрация: 20.02.2012
Сообщений: 597
15.06.2013, 19:40 6
вы лучше код покажите.
0
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
15.06.2013, 19:45 7
Python
1
2
3
4
5
6
>>> with open('answ.txt', encoding='utf-8') as fin:
...   lines = list(filter(bool, map(str.rstrip, fin)))
... 
>>> lines
['C', 'E', 'E', 'D', 'B', 'B', 'C', 'D', 'A', 'B', 'D', 'A', 'D', 'B', 'C', 'B', 'A', 'D', 'E', 'B', 'E', 'E', 'A', 'E', 'A', 'B', 'B', 'B', 'D', 'D', 'A', 'D', 'A', 'B', 'C', 'D', 'B', 'A', 'C', 'B', 'D', 'C', 'B', 'C', 'A', 'D', 'C', 'D', 'A', 'D', 'D', 'A', 'D', 'C', 'D', 'C', 'B', 'B', 'E', 'E']
>>>
1
Yashman
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
15.06.2013, 20:05  [ТС] 8
accept, спасибо большое! Если Вас не затруднит, объясните, пожалуйста, чем with open... as... отличается от простого open и, как работает ваш фильтр?
0
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
15.06.2013, 20:30 9
Цитата Сообщение от Yashman Посмотреть сообщение
чем with open... as... отличается от простого open
файл нужно закрывать, with закроет его, даже в случае ошибки чтения

Цитата Сообщение от Yashman Посмотреть сообщение
как работает ваш фильтр?
bool для пустой строки возвращает False, а filter, выбирает только те элементы, для которых функция вернула True

можно без bool
Python
1
2
3
4
5
6
>>> with open('answ.txt', encoding='utf-8') as fin:
...     lines = list(filter(None, map(str.rstrip, fin)))
... 
>>> lines
['C', 'E', 'E', 'D', 'B', 'B', 'C', 'D', 'A', 'B', 'D', 'A', 'D', 'B', 'C', 'B', 'A', 'D', 'E', 'B', 'E', 'E', 'A', 'E', 'A', 'B', 'B', 'B', 'D', 'D', 'A', 'D', 'A', 'B', 'C', 'D', 'B', 'A', 'C', 'B', 'D', 'C', 'B', 'C', 'A', 'D', 'C', 'D', 'A', 'D', 'D', 'A', 'D', 'C', 'D', 'C', 'B', 'B', 'E', 'E']
>>>
1
15.06.2013, 20:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2013, 20:30

Удаление элемента из списка по условию
Здравствуйте, дорогие форумчане! Нужна Ваша помощь! Проблема: дан массив...

Получение списка процессов и удаление ненужного
Подскажите пожалуйста как удалить самый тяжелый блокнот который запущен на...

Сортировка списка из составных элементов по частям этих элементов
Отсортируйте список участников олимпиады: 1) По убыванию набранного балла. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru