Удалить элемент в списке
При попытке удалить несуществующий элемент, Python вернёт ошибку, например «IndexError: pop from empty list».
С версии Python 3.3 доступен метод clear() , которая удаляет все элементы в списке.
L = [1, 2, 3] L # [1, 2, 3] L.clear() L # []
Обновлено: 06 ноября 2020
Комментарии
Авторизуйтесь, чтобы добавлять комментарии
- Список, кортеж
- Добавить элемент в список
- Удалить элемент в списке
- Размер списка и кортежа
- Суммировать числа в списке
- Сколько раз встречается элемент в списке
- Применить функцию к каждому элементу массива
- Сортировать список
- Разбить текст на список
- Минимальное и максимальное значение элемента списка или кортежа
Python-сообщество
- Начало
- » Python для новичков
- » Как удалить элемент списка
#1 Июнь 27, 2012 16:22:28
Serbis От: Зарегистрирован: 2012-02-13 Сообщения: 38 Репутация: 0 Профиль Отправить e-mail
Как удалить элемент списка
Есть список s, мне необходимо удалить элемент s, предварительно s был пропущен через команду list, но при попытке выполнить del s получаю ответ, что это кортеж и он не поддерживает удаление элементов. Как удалить?
Конкретно, мне нужно не просто сделать его пустым, а удалить, т. е. сдвинуть все последующие элементы относительно удаляемого.
Отредактировано Serbis (Июнь 27, 2012 16:23:47)
#2 Июнь 27, 2012 16:29:12
fata1ex От: Зарегистрирован: 2009-07-11 Сообщения: 732 Репутация: 52 Профиль Отправить e-mail
Как удалить элемент списка
Может вы приведете ваш код?
Может вы об этом. А может о чем-нибудь другом.
>>> tup = (1, 2, 3, [1,2,3], 4, 5, 6) >>> del tup[3] Traceback (most recent call last): File "", line 1, in module> TypeError: 'tuple' object doesn't support item deletion >>> tup = tup[:3] + tup[4:] >>> tup (1, 2, 3, 4, 5, 6)
#3 Июнь 27, 2012 16:48:03
Serbis От: Зарегистрирован: 2012-02-13 Сообщения: 38 Репутация: 0 Профиль Отправить e-mail
Как удалить элемент списка
s = self.source.loadFromServer(art) s = list(s) i = 0 while i len(s[0]): it = QtGui.QTableWidgetItem(fromUtf8(str(s[0][i]))) self.table.setItem(i, 1, it) i = i + 1
Переменная s получает список вида [2312324, Психология бессознательного, Юнг К. Г. …………… и т. д.
Все это одна стока с подэлементами, она должна быть загружена в таблицу, но в ней иногда встречаются служебные поля, которые и нужно удалить. Если я просто напишу
s[0][10] = ''
это приведет к смещению вывода в таблицу с появлением пустой ячейки, а мне нужно что бы этого не происходило, т. е. удалить элемент со смещением всей хвостовой части списка.
#4 Июнь 27, 2012 16:58:38
fata1ex От: Зарегистрирован: 2009-07-11 Сообщения: 732 Репутация: 52 Профиль Отправить e-mail
Как удалить элемент списка
Serbis
s = self.source.loadFromServer(art)
s = list(s)
i = 0
while i it = QtGui.QTableWidgetItem(fromUtf8(str(s)))
self.table.setItem(i, 1, it)
i = i + 1
Переменная s получает список вида [2312324, Психология бессознательного, Юнг К. Г. …………… и т. д.
Все это одна стока с подэлементами, она должна быть загружена в таблицу, но в ней иногда встречаются служебные поля, которые и нужно удалить. Если я просто напишу
s = »
это приведет к смещению вывода в таблицу с появлением пустой ячейки, а мне нужно что бы этого не происходило, т. е. удалить элемент со смещением всей хвостовой части списка.
А где само удаление и ошибка?
#5 Июнь 27, 2012 16:58:38
fata1ex От: Зарегистрирован: 2009-07-11 Сообщения: 732 Репутация: 52 Профиль Отправить e-mail
Как удалить элемент списка
Serbis
s = self.source.loadFromServer(art)
s = list(s)
i = 0
while i it = QtGui.QTableWidgetItem(fromUtf8(str(s)))
self.table.setItem(i, 1, it)
i = i + 1
Переменная s получает список вида [2312324, Психология бессознательного, Юнг К. Г. …………… и т. д.
Все это одна стока с подэлементами, она должна быть загружена в таблицу, но в ней иногда встречаются служебные поля, которые и нужно удалить. Если я просто напишу
s = »
это приведет к смещению вывода в таблицу с появлением пустой ячейки, а мне нужно что бы этого не происходило, т. е. удалить элемент со смещением всей хвостовой части списка.
А где само удаление и ошибка?
#6 Июнь 27, 2012 17:07:11
Serbis От: Зарегистрирован: 2012-02-13 Сообщения: 38 Репутация: 0 Профиль Отправить e-mail
Как удалить элемент списка
Serbis
s = self.source.loadFromServer(art)
s = list(s)
i = 0
while i it = QtGui.QTableWidgetItem(fromUtf8(str(s)))
self.table.setItem(i, 1, it)
i = i + 1
Переменная s получает список вида [2312324, Психология бессознательного, Юнг К. Г. …………… и т. д.
Все это одна стока с подэлементами, она должна быть загружена в таблицу, но в ней иногда встречаются служебные поля, которые и нужно удалить. Если я просто напишу
s = »
это приведет к смещению вывода в таблицу с появлением пустой ячейки, а мне нужно что бы этого не происходило, т. е. удалить элемент со смещением всей хвостовой части списка.
А где само удаление и ошибка?
Ошибка именно так которую вы привели и именно от этой же команды, с тем лишь различием что у меня удаляется подэелемент.
del s[0][10]
#7 Июнь 27, 2012 17:10:14
fata1ex От: Зарегистрирован: 2009-07-11 Сообщения: 732 Репутация: 52 Профиль Отправить e-mail
Как удалить элемент списка
Значит s — кортеж, как и говорит вам интерпретатор. Вы не можете привести код целиком и вывести список s и s перед попыткой удаления? В чем проблема говорит вам traceback, а в чем причина этой проблемы сказать, не видя вашего кода, я не могу, это к reclosedev — он у нас экстрасенс.
#8 Июнь 27, 2012 17:24:49
Serbis От: Зарегистрирован: 2012-02-13 Сообщения: 38 Репутация: 0 Профиль Отправить e-mail
Как удалить элемент списка
def loadFromServer(self, art): print 'LoadFormServer' s = [] self.connectToBase() try: q = "SELECT * FROM article WHERE article = '%s';" % (art) self.cur.execute(q) while 1: row = self.cur.fetchone() if not row: break s.append(row) return s except Exception, e: print e def upDataToTable(self, art): s = self.source.loadFromServer(art) s = list(s) i = 0 del s[0][10] while i len(s[0]): it = QtGui.QTableWidgetItem(fromUtf8(str(s[0][i]))) self.table.setItem(i, 1, it) i = i + 1
(‘2312324’, ‘\xd0\x9f\xd1\x81\xd0\xb8\xd1\x85\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb3\xd0\xb8\xd1\x8f \xd0\xb1\xd0\xb5\xd1\x81\xd1\x81\xd0\xbe\xd0\xb7\xd0\xbd\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xbe\xd0\xb3\xd0\xbe’, ‘\xd0\x9a. \xd0\x93. \xd0\xae\xd0\xbd\xd0\xb3’, ‘01100811’, ‘9785883730022’, ‘2137’, ‘\xd0\x9a\xd0\xa2\xd0\x9a: 011’, 8.0, 319.0, ‘null’, 18.0, 250.0, 15.0, 150.0, 0.29999999999999999, ‘\xd0\x9a\xd1\x80\xd0\xb0\xd1\x81\xd0\xbd\xd1\x8b\xd0\xb9’, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ‘\xd0\xa8\xd1\x82\xd1\x83\xd0\xba\xd0\xb0’, 1.0, 319.0, None, None, None, 140.0, ‘X’, ‘26.06.2012’, ‘26.06.2012’, ‘26.06.2012’, ‘null’, ‘null’, ‘null’, ‘\xd0\xae\xd0\xbd\xd0\xb3. \xd0\x9f\xd1\x81\xd0\xb8\xd1\x85\xd0\xbe\xd0\xbb \xd0\x91\xd0\xb5\xd1\x81\xd1\x81\xd0\xbe\xd0\xb7\xd0\xbd.’, ‘null’, None, ‘null’, ‘RU’)
Traceback (most recent call last):
File “/home/serbis/Prog/python/b3/sources/createa/head.py”, line 95, in slot_ok
tb.changeArticle(self.art_edit.text())
File “/home/serbis/Prog/python/b3/sources/createa/table.py”, line 149, in changeArticle
self.upDataToTable(art)
File “/home/serbis/Prog/python/b3/sources/createa/table.py”, line 374, in upDataToTable
del s
TypeError: ‘tuple’ object doesn’t support item deletion
Решение задачи Удалить элемент с Mccme
Дан список из чисел и индекс элемента в списке k. Удалите из списка элемент с индексом k, сдвинув влево все элементы, стоящие правее элемента с индексом k.
Код
Скопировать код
#include using namespace std; int main() < string s; getline(cin, s); s.insert(0, " "); int pos = s.find(" "), pos1; if(s[s.size() - 1] == ' ') s.pop_back(); vectora; while(pos + 1) < pos1 = s.find(" ", pos + 1); a.push_back(stoi(s.substr(pos + 1, pos1 - pos - 1))); pos = pos1; >int k = 0; cin >> k; a.erase(a.begin() + k); for(int i = 0; i
         
Автор: Администратор
Код
Скопировать код
a = list(input().split()) a = [int(i) for i in a] k = int(input()) a.pop(k) for i in a: print(i, end = " ")
         
Автор: Администратор
Школа №1 Остров
Если код возвращает «True«, значит, что элемент был найден в множестве. При поиске элемента, который отсутствует во множестве, мы получим «False»
Python позволяет нам вносить новые элементы в множество при помощи функции add() .
имя множества.add(добавляемые элемент)
а . add ( 4 )
Итог < 1 , 2 , 3, 4 >
Удаление элемента из множеств
Python позволяет нам удалять элемент из множества, но не используя индекс, так как множество элементов не индексированы. Элементы могут быть удалены при помощи обоих методов discard() и remove() .
Помните, что метод discard() не будет выдавать ошибку, если элемент не был найден во множестве. Однако, если метод remove() используется и элемент не был найден, возникнет ошибка.
С методом pop() , мы можем удалить и вернуть элемент. Так как элементы находятся в произвольном порядке, мы не можем утверждать или предсказать, какой элемент будет удален.
a =
print ( a . pop ( ) )
выбирает элемент из множества a
Вы можете использовать тот же метод при удалении элемента и возврате элементов, которые остаются во множестве.
a = < 1 , 2 , 3 , 4 , 5 , 6 >
a . pop () # удалит элемент
a . pop () # удалит еще элемент
print ( a)
Метод Python под названием clear() поможет удалить все элементы во множестве.
