Как удалить часть списка в python
Перейти к содержимому

Как удалить часть списка в python

  • автор:

Удаление элементов списка по срезу с указанным шагом

В результате произойдет удаление элементов последовательности sequence от индекса i до индекса j с шагом k .

Больше об индексации среза с заданным шагом читайте в операции получения среза последовательности с заданным шагом и смотрите встроенную функцию slice()

Замечания по удалению среза последовательности с указанным шагом будут такие же, как при удалении среза последовательности без шага

Примеры удаления части списка операцией среза с шагом.

>>> x = [1, 4, 7, 10, 13, 16, 19] >>> del x[1:6:2] >>> x # [1, 7, 13, 19] >>> x = [1, 4, 7, 10, 13, 16, 19] # индекс j выходит за пределы последовательности >>> del x[:11:3] >>> x # [4, 7, 13, 16] # Cрез выходит за пределы последовательности >>> del x[11::3] >>> x # [4, 7, 13, 16] # Индексы и шаг опущены >>> del x[::] >>> x # [] 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Изменение/замена элемента списка по индексу
  • Изменение части списка операцией среза
  • Изменение списка срезом c заданным шагом
  • Удаление части списка операцией среза
  • Удаление части списка по срезу с заданным шагом
  • Метод list.append(), добавляет значение в конец списка
  • Метод list.clear(), очищает список
  • Метод list.copy(), копия списка
  • Метод list.extend(), расширяет список другой последовательностью
  • Расширение списка его содержимым
  • Метод list.insert(), вставить элемент по индексу
  • Метод list.pop(), получение с удалением элемент списка
  • Метод list.remove(), удаление элемента списка по значению
  • Метод list.reverse(), разворачивает элементы списка
  • Удаление элемента списка по индексу
  • Удаление дубликатов из списка Python с сохранением очередности

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

В результате произойдет удаление элементов последовательности sequence от индекса i до индекса j . Операция удаления элементов среза последовательности эквивалентна выполнению sequence[i:j] = [] .

Больше об индексации среза читайте в операции получения среза последовательности и смотрите встроенную функцию slice()

Замечания по операции удаления среза последовательности:

Если индекс j указанного среза выходит за пределы индексации последовательности sequence — j > len(sequence) , то в результате операции произойдет удаление элементов от индекса i последовательности до ее конца.

Если оба индекса указанного среза i > len(sequence) и j > len(sequence) — выходят за пределы индексов последовательности, то в результате операции удаления, последовательность sequence не изменится.

Если индексы указанного среза i и j опущены, то в результате произойдет удаление всей последовательности.

Примеры удаления части элементов списка срезом.

>>> x = [1, 4, 7, 10, 13, 16, 19] >>> del x[1:4] >>> x # [1, 13, 16, 19] # индекс j выходит за пределы последовательности >>> x = [1, 4, 7, 10, 13, 16, 19] >>> del x[5:20] >>> x # [1, 4, 7, 10, 13] # Cрез выходит за пределы последовательности >>> del x[20:] >>> x # [1, 4, 7, 10, 13] # Индексы опущены >>> del x[:] >>> x # [] # Вложенные последовательности >>> x = [[1, 4, 7, 10], [13, 16, 19]] >>> del x[0][1:4] >>> x # [[1], [13, 16, 19]] 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Изменение/замена элемента списка по индексу
  • Изменение части списка операцией среза
  • Изменение списка срезом c заданным шагом
  • Удаление части списка операцией среза
  • Удаление части списка по срезу с заданным шагом
  • Метод list.append(), добавляет значение в конец списка
  • Метод list.clear(), очищает список
  • Метод list.copy(), копия списка
  • Метод list.extend(), расширяет список другой последовательностью
  • Расширение списка его содержимым
  • Метод list.insert(), вставить элемент по индексу
  • Метод list.pop(), получение с удалением элемент списка
  • Метод list.remove(), удаление элемента списка по значению
  • Метод list.reverse(), разворачивает элементы списка
  • Удаление элемента списка по индексу
  • Удаление дубликатов из списка Python с сохранением очередности

Удаление элементов из списка по условию. Как это работает?

Имеется кусок кода, который должен удалять все элементы из списка, которые меньше 5. Однако этот код работает не верно. Можете ли вы без или с использованием консоли указать где ошибка и как нужно делать.

nums = [1,2,5,10,3,100,9,24] for i in nums: if i < 5: nums.remove(i) nums >>>[2, 5, 10, 100, 9, 24]

Проверяет ли этот код на то, что элемент по своему значению менешь 5? В первой итерации 1 конечно меньше 5. Затем программа удаляет единицу, но в тоже время путаются индексы. На второй итерации она проверяет уже 5 а не 2. От этого и ошибка.

Для решения этой задачи можно использовать несколько вариантов.

Первый: создать пустой массив и дописывать в него, а именно:

nums = [1,2,5,10,3,100,9,24] newnums = [] for i in nums: if i >= 5: newnums.append(i) newnums >>>[5, 10, 100, 9, 24]

Второй: Используя list comprehension

nums = [1,2,5,10,3,100,9,24] newnums = [i for i in nums if i>=5] newnums >>>[5, 10, 100, 9, 24]

Нам нравится больше спосом с list comprehension. Но решать всегда вам.

Удаление части списка

Я хочу удалить участок списка,а точнее все элементы с начала списка, пока я не наткнусь на присутствие ‘ ‘ в обьекте списка, но у меня не выходит:

j=['123','321','hhh','awdawdawd

','s','ggg'] for i in range(len(j)-1): if '

' in j[i]: j.pop(i) break j.pop(i) print(j)

Отслеживать
задан 19 июл 2022 в 14:24
165 8 8 бронзовых знаков
Возможный дубликат вопроса: Удаление элементов в списке словарей
19 июл 2022 в 14:27

Нет, как я понял там есть конкретные элементы, которые не нужны, а мне нужно останавливать цикл, если есть в тексте

, например a,b,c,d,e

,g — мне нужно удалить все, кроме g
19 июл 2022 в 14:29
разумеется, там не абсолютно тот же пример, но почему, по-вашему, у вас не выходит?
19 июл 2022 в 14:31

У меня всегда разный список и

идет в перемешку с текстом.
19 июл 2022 в 14:33
Покажите, какой должен быть результат для вашего примера.
19 июл 2022 в 16:34

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Можно еще так сделать

for i in range(len(j)): if '

' in j[i]: j = j[i+1:] break

Т.е. при нахождении нужных символов в элементе, просто обрезаем начало исходного списка до элемента, следующего за текущим, и прерываем цикл, т.к. условие поиска выполнено. И не нужно использовать дополнительный список.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *